java知识点查漏补缺

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ygdxt/article/details/84145169

写此篇文章的缘由

学习java已经一年有余了,所谓温故而知新,所以最近又在复习以前学过的java知识,同时更加深入了对java的学习,这期间的疑难问题和不熟悉没接触过的知识点,特开此贴纪录。

顺便插一句,这是我以前的java课堂上学习的代码库,配套清华大学出版社陈国君主编的《java程序设计基础》,代码库包括一些书上给出的示例源程序(部分)、课后习题(部分)和实验室上机代码。传送门

声明

到目前为止,本篇文章的内容大部分来自于ycblogs

正文部分

instanceof关键字

说明

instanceof是Java的一个二元操作符,和==,>,<是同一类东西。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。

示例

String a = "123";
boolean b = a instanceof String;

java是如何实现跨平台的

跨平台是怎样实现的呢?这就要谈及Java虚拟机(Java Virtual Machine,简称 JVM)。

JVM也是一个软件,不同的平台有不同的版本。我们编写的Java源码,编译后会生成一种 .class 文件,称为字节码文件。Java虚拟机就是负责将字节码文件翻译成特定平台下的机器码然后运行。也就是说,只要在不同平台上安装对应的JVM,就可以运行字节码文件,运行我们编写的Java程序。

而这个过程中,我们编写的Java程序没有做任何改变,仅仅是通过JVM这一”中间层“,就能在不同平台上运行,真正实现了”一次编译,到处运行“的目的。

JVM是一个”桥梁“,是一个”中间件“,是实现跨平台的关键,Java代码首先被编译成字节码文件,再由JVM将字节码文件翻译成机器语言,从而达到运行Java程序的目的。

注意:编译的结果不是生成机器码,而是生成字节码,字节码不能直接运行,必须通过JVM翻译成机器码才能运行。不同平台下编译生成的字节码是一样的,但是由JVM翻译成的机器码却不一样。

所以,运行Java程序必须有JVM的支持,因为编译的结果不是机器码,必须要经过JVM的再次翻译才能执行。即使你将Java程序打包成可执行文件(例如 .exe),仍然需要JVM的支持。

注意:跨平台的是Java程序,不是JVM。JVM是用C/C++开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的JVM。

命名规范【必须见名知意】

* 下划线式命名:my_name
* 驼峰式命名:myName
* 类,接口命名:必须是大写字母开头,比如PersonActivity
* 方法,变量【字符串】命名:getData(),otherName
* 常量命名:一般全是大写,比如MAX_VALUE

有关堆和栈

栈: 存放的是局部变量

局部变量:在方法定义或者方法声明上的变量都是局部变量。

堆: 存放的是所有new出来的东西

深入了解泛型

点击查看

有关String

String一旦被创建就不能改变

下面这条语句一共创建了多少个对象:String s = “a”+“b”+”c”; 分别都是什么?
答案:5个对象
分别是 "a" , "b" , "c" , "ab" , "abc"。

有关基础类型缓存池

以Integer为例
new Integer(123) 与 Integer.valueOf(123) 的区别在于:
new Integer(123) 每次都会新建一个对象;
Integer.valueOf(123) 会使用缓存池中的对象,多次调用会取得同一个对象的引用。

Integer x = new Integer(123);
Integer y = new Integer(123);
System.out.println(x == y);    // false
Integer z = Integer.valueOf(123);
Integer k = Integer.valueOf(123);
System.out.println(z == k);   // true

猜你喜欢

转载自blog.csdn.net/ygdxt/article/details/84145169