① 都是面向对象的语言,都支持封装、继承和多态。 ② Java 不提供指针来直接访问内存,程序内存更加安全。 ③ Java 的类是单继承的,C++ 支持多重继承;虽然 Java 的类不可以多继承,但是接口可以多继承。 ④ Java 有自动内存管理机制,不需要程序员手动释放无用内存。

2021年10月1日 0条评论 1113点热度 0人点赞 小小调酒师 阅读全文

Java 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同的结果。 在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以 Java 程序运行时比较高效,而且,由于字节码并不专对一种特定的机器,因此,Ja…

2021年10月1日 0条评论 1107点热度 0人点赞 小小调酒师 阅读全文

优点: 性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix 等一般采用面向过程开发,性能是最重要的因素。 缺点: 没有面向对象易维护、易复用、易扩展。 优点: 易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护。 缺点: 性能比面向过程低。 简单易学; 面向对象(封装,继承,多态); 平台无关性(Java 虚拟机实现平台无关性); 可靠性; 安全性; 支持多线程(C++ 语言没有内置的多线…

2021年10月1日 0条评论 1158点热度 0人点赞 小小调酒师 阅读全文

备注∶只要记住了有4种访问权限,4个访问范围,然后将全选和范围在水平和垂直方向上分别按排从小到大或从大到小的顺序排列,就很容易画出上面的图了。

2021年9月28日 0条评论 1503点热度 0人点赞 小小调酒师 阅读全文

不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对
象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用。 也就是说,当一
个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非
static方法的调用,那个非static方法是关联到哪个对象上的呢?这个逻辑无法成立,所以,一个static方法内部发出对非static方法的调用。

2021年9月28日 0条评论 958点热度 0人点赞 小小调酒师 阅读全文

例如,对于如下语句∶ 执行如下语句将报告编译期错误∶ 但是,执行如下语句则可以通过编译∶ 支付 ¥1.99 购买本节后解锁剩余57%的内容 微信支付 如已付费购买,请免登录验证。

2021年9月28日 0条评论 952点热度 0人点赞 小小调酒师 阅读全文

1. tryLock能获得锁就返回true,不能就立即返回false,tryLock(long timeout,TimeUnitunit),可以增加时间限制,如果超过该时间段还没获得锁,返回false。 2. lock能获得锁就返回true,不能的话一直等待获得锁。 3. lock和lockInterruptibly,如果两个线程分别执行这两个方法,但此时中断这两个线程,lock不会抛出异常,而lockInterruptibly会抛出异常。

2021年9月28日 0条评论 1297点热度 0人点赞 小小调酒师 阅读全文

synchronized它可以把任意一个非NULL的对象当作锁。他属于独占式的悲观锁,同时属于可重入锁。 Synchronized作用范围: 1. 作用于方法时,锁住的是对象的实例(this); 2. 当作用于静态方法时,锁住的是Class实例,又因为Class的相关数据存储在永久带PermGen(jdk1.8 则是metaspace),永久带是全局共享的,因此静态方法锁相当于类的一个全局锁,会锁所有调用该方法的线程; 3. synchronized作用于一个对象实例时,锁住的是所有以该对象为锁的代码块。 它有多个…

2021年9月28日 0条评论 1017点热度 1人点赞 小小调酒师 阅读全文

程序运行结束,线程自动结束。 一般 run()方法执行完,线程就会正常结束,然而,常常有些线程是伺服线程。它们需要长时间的运行,只有在外部某些条件满足的情况下,才能关闭这些线程。使用一个变量来控制循环,例如:最直接的方法就是设一个 boolean 类型的标志,并通过设置这个标志为 true 或false 来控制 while循环是否退出,代码示例 : 定义了一个退出标志exit,当exit为true时,while循环退出,exit的默认值为false。 在定义exit时,使用了一个Java关键字volatile,这个…

2021年9月27日 0条评论 1104点热度 0人点赞 小小调酒师 阅读全文

synchronized关键字解决的是多个线程之间访问资源的同步性,synchronized关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。 另外,在 Java 早期版本中,synchronized属于重量级锁,效率低下,因为监视器锁(monitor)是依赖于底层的操作系统的 Mutex Lock 来实现的,Java 的线程是映射到操作系统的原生线程之上的。 如果要挂起或者唤醒一个线程,都需要操作系统帮忙完成,而操作系统实现线程之间的切换时需要从用户态转换到内核态,这个状态之间的转换需要相对比较…

2021年9月27日 0条评论 932点热度 0人点赞 小小调酒师 阅读全文
156789