java学习心得
前言
命令行运行
JAVA_HOME
下面填写到 jdk
版本
后来在 path
下面添加的 %JAVA_HOME%\bin 与上面的路径无关
当我们要运行Java程序时,我们需要编译(需要使用javac.exe)和执行(需要使用java。exe),而系统默认的是在当前程序所在的文件夹目录下去寻找这两个执行文件,而不会去其他地方找,此时我们就需要配置Path环境变量,使得每次程序运行就自动到安装JDK的bin目录下去搜索javac.exe和java.exe文件。
classpath
变量的含义是告诉jvm要使用或执行的class放在什么路径上,便于JVM加载class文件
基本的 bat 脚本样例
1 | set JAVA_HOME=%JAVA_HOME% |
数据类型
java 中变量为值变量还是引用变量取决于变量的声明类型
值变量: byte
short
int
long
char
float
double
boolean
引用变量: class
interface
array
字符串转换为其他的
1 | int i = Integer.parseInt("1"); |
注意啦:boolean 不能和其他的类型转换
看看下面这个语句1
2int x = 0, y = 0;
System.out.println(((x>1)&&(++x )));
这个句子是有问题的,++x
这个式子得到的是一个int
,但是 &&
这个需要的是 boolean
,要改为
1 | System.out.println(((x>1)&&(++x ==0))); |
1 | char a = '1'; |
没有break的话直接一路下来
如果是这种的话,只会输出到88
条件运算符 ? : 为什么说是右结合的呢
1 | a>b ? c : d ? e : f; |
数学函数,字符,字符串
round 就类似一个四舍五入的
随机产生一个字符
1 | System.out.println((char)(int)(Math.random()*(65535+1))); |
判断的返回值是 boolean
循环
方法
数组
int与Integer的基本使用对比
- Integer是int的包装类;int是基本数据类型;
- Integer变量必须实例化后才能使用;int变量不需要;
- Integer实际是对象的引用,指向此new的Integer对象;int是直接存储数据值 ;
- Integer的默认值是null;int的默认值是0。
比较 == ,equal , compareto 区别
- 等号是最简单也最容易理解的,如果等号的两边是基本数据类型,比如int,double,那么等号就用来单纯的比较他们的数值大小
如果等号两边放的是两个对象,那么就会比较他们在内存当中的地址。 - compareTo()会返回数字,如果两个字符串内容相同,会返回0,字符串a大于字符串b,会返回相差的ASCII码的正数,字符串a小于字符串b,会返回相差的ASCII码的负数。
- equals是先用等号(==)直接来比较两个对象在内存当中的地址,如果相等会直接返回true,如果这两个对象的地址不一样,就会考虑这两个对象是不是String类型的,如果是String类型的,那先比较两个字符串长度是否一样,如果长度不一致,那100%不相等,直接返回false。长度一致则逐个比较
intern
intern() 方法用于在运行时将字符串添加到内部的字符串池中,并返回字符串池中的引用。
它遵循以下规则:对于任意两个字符串 s 和 t,当且仅当 s.equals(t) 为 true 时,s.intern() == t.intern() 才为 true。
1 | String s1 = "Welcome"; |
答案是 true