1.任何语言都有自己擅长的领域,因为他有自己的库函数
2.javac XXX.java --- XXX.class 由jdk翻译成中间语言class文件
java XXX 由jre直接翻译成汇编或者C语言
3.java se 就是java核心技术 ,然后由java社区引入大牛开发第三方功能,开发出越来越多的功能,形成java生态
java ee 就是java web开发 网站开发
java me开发就是安卓开发
面试点4.SDK 第三方开发的功能,在调用时会提供调用样例和说明。
5.java命名规范,大驼峰命名法:每个单词开头字母大写,如FirstSample
小驼峰命名法:除第一个单词以外所有单词首字母大写,如firstSample
类名:大驼峰
变量名,文件名,方法名:小驼峰
文件夹名字:全部小写
常量名字:所有字母大写
6.数据类型
long x= 40000000L 长整型后面要加后缀L或1
八进制有前缀0,如010对应八进制中的8
前缀0b表示二进制 int x = 0b1001就是9
前缀0x表示十六进制。
7.图像显示
光学三原色:红绿蓝
每个像素点占据56bit
CPU给显示器发送一堆0101,每56位确定一个像素点,三原色比例越大,亮度越大,颜色显示越浅。
8.记事本显示原理
面试点字体编码事先存在于一个库中,打字存的时候存的是字体编码。显示的时候把编码固定长度进行读取与库进行匹对,送到显示器。
面试点9.final功能:被final修饰的类不能被继承 ;被final修饰的方法不能重写;final修饰的常量不能二次赋值;final防止指令重排序,保证多线程下的安全。
final修饰的常量所有名字大写
10.一个变量等于自己++,值不变。
如 int a =0;
a = a++;
结果为0。
若为int b = a++; a = ++a;则没有影响。
11.位运算可以极大的提高乘法效率。
面试点12.字符串比较相等只能用equals。 str.equals(str4);
重写equals一定要重写hashcode()方法,因为hashmap集合需要equals和hashcode配合使用
13.String API
char x = str.charAt(2)。调用charAt获取字符串的第几个字符。
int y = str.codePointAt(2);获得指定字符的编码值(码点)
替换
字符串长度 int x = str.length();
字符串切割,用数组接收数据 String[] arr =str.split("=");
for(String a:arr){
System.out.println(a);}
面试点14.String和StringBuilder, StringBuffer 区别
StringBuilder比String构建字符串速度要快很多。
StringBuffer内部原理同StringBuilder一样,是多线程下的安全版本,因为加锁了,稍微慢一丢丢相对StringBuilder。
凡是带buffer的--->内部实现都是基本类型数组
因为StringBuffer每次申请足够大空间,不用每次增加数据时重新申请空间。
15.一个变量至少消耗4KB内存,这是由操作系统划分内存页决定的,每个页4KB。
16.String dir System.getProperty("user.dir"),获取当前代码文件所在的路径。
面试点17.switch击穿:case没有写break,一直向下执行,直到遇到第一个break.
case标签为 int,short,byte,char;枚举常量;字符串。
18.多维数据
19.申请内存
基本类型可以确定存储大小,直接开辟存储空间,修改数值直接在原位置上修改。基本类型句柄和值在同一位置。
引用类型指向数值地址,若修改数值需要开辟新的存储空间,修改指向地址。引用类型句柄和值肯定不在同一个位置。
20.多维数组地址。
21,任何语言,只要是引用类型的句柄等于什么什么,都是改变指向地址。
22.arrays.sort(a)
对数组a进行排序。