Java基础查漏补缺(1)
Java基础查漏补缺
String str2 = "hello";
String str3 = "hello";
System.out.println(str3==str2);//true
Java运行时会维护一个String Pool(String池)。String池用来存放运行时中产生的各种字符串,并且池中的字符串的内容不重复。而一般对象不存在这个缓冲池,并且创建的对象仅仅存在于方法的堆栈区。
break需要在switch和loop内; (虽然没有这么做过……)
上下双死循环:编译错误,无法访问的语句;
手算二进制、十进制互转(普通版以及简化版):
十转二:2的(i-1)次幂的和,i为第几位。
二转十1:该数短除2至商为0,余数自下至上为二进制结果。
二转十2:列出2的0到i次幂,将该数分解为2的幂相加,有2的i次幂的位为1,不然为0;
十进制52=32+16+4
00110100
空间最小单位为字节byte,占8个二进制位;
dos命令:
- help(帮助,命令菜单)
- dir(列出当前目录下的子文件和子文件夹)
- cd(切换目录)
cd 目录名
cd ..返回上层目录
cd \返回根目录(正反斜杠都可以) - cls 清屏;
- c: 切换盘符
上下键历史命令,tab补全;
JVM:Java Virtual Machine
JRE:Java Runtime Environment
JDK:Java Development Kit
JRE=JVM+核心类库
JDK=JRE+开发工具
环境变量:
名:JAVA_HOME
值:Java安装目录
名:Path
值:%JAVA_HOME%\bin
(为什么百度到的环境变量配置那么麻烦?)
引用数据类型可以直接传参来修改,基本数据类型必须返回?(传值传引用?)
byte和short在进行计算式会自动转化为int,二常量会在编译时直接进行计算
+按顺序计算,进行计算或者字符串连接
&&和&,&&具有短路效果,获得结果后不再计算后面,||和|同理,因此优先使用&&和||;
工程名一般小写,包名为域名倒写;
接口,是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么
接口的内部主要就是封装了方法,包含抽象方法(JDK 7及以前),默认方法和静态方法(JDK 8),私有方法
(JDK 9)。
(终于彻底明白接口了,类似C#的委托,Java使用接口实现,均可以大幅提高代码的利用率!)
默认方法类似成员方法,提供方法的默认实现;
Scanner类读取输入;
字符串:subString()截取字符串,index()是否包含某字符串,也可以用来判定是否以某字符串开头,trim()删除前后空格(删除前或后或前后空白字符),replace(str)替换字符串,注意是返回新字符串而不是修改
在for循环中使用i--来回溯;
ArrarList成员方法:toArray(T[] a)可以安全的转化为数组
打印数组可以用Arrays.toString(arr)快速打印而不用遍历