java 的跨平台原理
java 源程序(.java 文件)通过编译器编译成为 Class 文件(字节码文件),而它的 class
文件是基于字节码(以 byte 为单位存储的文件)的,而字节码文件是描述程序要运行的的
虚指令的集合,这些虚指令的集合与任何的平台无关,Java 虚拟机认识它(只要在不同的
平台下部署相应的 jre,运行 jvm!就可以了)
有了基本数据类型,为什么还需要包装类型
我们知道 Java 是一个面相对象的编程语言,基本类型并不具有对象的性质,为了让基
本类型也具有对象的特征,就出现了包装类型(如我们在使用集合类型 Collection 时就一
定要使用包装类型而非基本类型),它相当于将基本类型“包装起来”,使得它具有了对象
的性质,并且为其添加了属性和方法,丰富了基本类型的操作。
另外,当需要往 ArrayList,HashMap 中放东西时,像 int,double 这种基本类型是放不进
去的,因为容器都是装 object 的,这是就需要这些基本类型的包装器类了。
"=="和 equals 方法究竟有什么区别
8、 equals与==的区别
== :
== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是
指相同一个对象。比较的是真正意义上的指针操作。
1、比较的是操作符两端的操作数是否是同一个对象。
2、两边的操作数必须是同一类型的(可以是父子类之间)才能编译通过。
3、比较的是地址,如果是具体的阿拉伯数字的比较,值相等则为true,如:
int a=10 与 long b=10L 与 double c=10.0都是相同的(为true),因为他们都指向地址为10的堆。
equals用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以
适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是Object类中的方法,而Object中的
equals方法返回的却是的判断。
总结:
所有比较是否相等时,都是用equals 并且在对常量相比较时,把常量写在前面,因为使用object的
equals object可能为null 则空指针
在阿里的代码规范中只使用equals ,阿里插件默认会识别,并可以快速修改,推荐安装阿里插件来排
查老代码使用“”,替换成equals
Java语言有哪些特点
1、简单易学、有丰富的类库
2、面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高)
3、与平台无关性(JVM是Java跨平台使用的根本)
4、可靠安全
5、支持多线程
标识符的命名规则。
标识符的含义:
是指在程序中,我们自己定义的内容,譬如,类的名字,方法名称以及变量名称等等,都是标识符。
命名规则:(硬性要求)
标识符可以包含英文字母,0-9的数字,$以及_
标识符不能以数字开头
标识符不是关键字
命名规范:(非硬性要求)
类名规范:首字符大写,后面每个单词首字母大写(大驼峰式)。
变量名规范:首字母小写,后面每个单词首字母大写(小驼峰式)。
方法名规范:同变量名。