文章目录
- 前言
- 一、今天学习了什么?
- 二、关于问题的答案
- 1.SE
- 总结
前言
提示:这里为每天自己的学习内容心情总结;
Learn By Doing,Now or Never,Writing is organized thinking.
目前的想法是,根据 Java Guide 和 JavaLearning 和 小林coding进行第一轮复习,之后根据 Tiger 和 CS-Notes 进行最后的重点复习。
先多,后少。
提示:以下是本篇文章正文内容
一、今天学习了什么?
- 复习JavaSE;
二、关于问题的答案
1.SE
Q:JVM/JRE/JDK,三者之间的区别?
「JVM」是Java虚拟机,保证了Java能一次编译到处运行。
「JRE」是Java运行环境,可以运行已经被编译好的字节码文件,提供了基本的类库。
「JDK」是Java开发工具包,程序员可以编写代码,提供了众多工具类库。
JDK 包含 JRE,JRE 包含 JVM。
Q:Java 代码是如何被执行的?
程序员编写好的 Java 代码,首先会经过前端编译器,通过 javac 命令,将代码解析成字节码文件。
字节码文件会经历后端编译器,解释成机器可以直接运行的指令。
Q:自增自减运算符?位移运算符?
变量前++:先自增后赋值;
变量后++:先赋值,后自增;
左移,无符号右移(>>),带符号右移(>>);
移动的位数超过了数值所占的位数,会取模后再位移。
Q:continue/break/return,关键字的区别?
continue:终止本次循环,继续开始下次循环;
break:直接跳出循环体;
return:结束方法的执行;
Q:基本数据类型和包装类的区别?
所占大小,所处位置,默认值,比较方式;
Q:包装类型的缓存机制了解么?
Byte 、 Short 、 Integer 、 Long ,缓存了【-128,127】;
Character :缓存了【0,127】;
Boolean : true、false;
Q:自动装箱与拆箱了解吗?原理是什么?
包装类 到 基本数据类型,称之为拆箱;
基本数据类型 到 包装类,称之为装箱;
「装箱」,本质调用的是 XXXX.valueOf() 方法;
「拆箱」,本质调用的是 Object.xxxValue() 方法;
Q:为什么浮点数运算的时候会有精度丢失的风险?如何解决浮点数运算的精度丢失问题?
因为在计算机中是采用二进制来保存数值,二进制的宽度有限,无法保存好循环的小数,会出现精度丢失的问题。
采用 BigDecimal。
Q:成员变量与局部变量的区别?
存活时间、声明语法、默认值、存储方式
Q:静态变量有什么作用?
静态变量只会被初始化一次,随着类的加载而加载,可以被该类的所有实例共享。
Q:字符型常量和字符串常量的区别?
语法、内存大小、含义。
Q:静态方法为什么不能调用非静态成员呢?静态方法和实例方法有什么不同?
静态方法是和类加载一块儿的,在类加载的时候就被分配了内存,而实例方法是属于对象实例的,只有创建了对象,对象才有对象实例方法。
在还没有非静态成员的时候静态方法已经被创建了,此时调用在内存中还不存在的非静态成员,属于非法操作。
语法、访问成员的限制。
Q:什么是可变长参数?
本质是数组。
Q:重载和重写?
「重载」本类;「重写」子类(两小一大,大是访问修饰符)。
Q:面向对象和面向过程的区别?
「面向对象」,将属性提取为对象,计算抽象成为对象的方法;
「面向过程」,将计算抽象成为过程。
Q:对象的相等和引用相等的区别?
属性&内存地址。
Q:如果一个类没有声明构造方法,该程序能正确执行吗?
能,自动会创建一个无参的构造方法。
Q:构造方法有哪些特点?是否可被 override?
方法名和类名一样,不能被重写。
总结
提示:这里对文章进行总结:
今天又偷懒了。。。。。