java基础
动机至善
编程的三大境界:
1、初能望文生义、死记硬背,可小成(实现功能);
2、进能变通运用、举一反三,有一得(优化功能);
3、终能深入浅出、知行合一,方大就(凡事自动化)。
展开
-
final详解
final的作用: 1、修饰类;被final修饰的类不能被继承,比如JDK中 Long String等 2、修饰方法;被final修饰的方法不能被重写,即子类不能复写父类的final方法 3、修饰变量;被final修饰的变量不能被重新赋值,这里需要强调一下,首先我们有个大前提final是java的一个关键字,所以不能被重新赋值只是在语法上不能再次赋值,如果通过其他方式直接操作字节码是可以修改的。另外如果修饰的为引用数据类型,比如final User user;不能被重新赋值的意思是,user这个变量不原创 2020-08-26 18:50:32 · 363 阅读 · 0 评论 -
volatile相关知识点总结
volatile的两个作用: 1、保证数据的可见性(底层原理:CPU原语支持,使用缓冲一致性协议) 多线程编程时,每个线程会有自己独立的缓冲(JVM寄存器),对于多个线程共享的数据(堆中变量),不加volatile的情况下,如果Thread1修改了变量的值,不会立刻写回去,这是其他线程读取到的变量值就会和Thread1不一致。 加上volatile关键字以后,如果有一个线程修改了共享变量的值会立刻写回去,同时其他线程独有的变量副本失效。 需要注意的是:volatile只保证可见...原创 2020-08-26 18:35:40 · 159 阅读 · 0 评论 -
抽象类和接口的区别
谈到这个问题,相信很多同志在面试中都遇到过类似的问题。甚至有时候我们会遇到很强势的面试官,直接问,你在项目中是怎么使用的,什么样的场景?你为什么要这样设计?接下来我们一起来探讨这个问题。 首先说说抽象类,首先它是一个类,只是用abstract关键字修饰了,所以类中有的元素(属性 普通方法 构造器等等)它都可以有,这时有的面试官可能会问,既然抽象类中有抽象方法,那它...原创 2019-04-23 23:39:58 · 98 阅读 · 0 评论 -
lambda表达式
lambda表达式作为Java8最值得我们去学习的特性,它的出现极大的较少了代码的冗余,同时提高了可读性。接下来直接上代码: 先举两个简单的例子: 一:以创建一个线程为例 // 没有lambda之前我们的语法是这样的 new Thread(new Runnable() { @Override public void run()...原创 2019-05-08 21:21:15 · 194 阅读 · 0 评论 -
Java关键字
第一类:基本数据类型 byte short int long char boolean float double 第二类:修饰符以及声明 private default protected public package import implements interface extends abstarct class static final native synchron...原创 2019-05-13 23:41:16 · 99 阅读 · 0 评论