1、Java学习手册:Java基础知识点
2、Java学习手册:Java面向对象面试问题
3、Java学习手册:Java集合、泛型面试问题
4、Java学习手册:Java并发与多线程面试问题
5、Java学习手册:Java虚拟机面试问题
6、Java学习手册:Java IO面试问题
7、Java学习手册:Java反射机制面试问题
8、Java学习手册:Java网络编程面试问题
9、Java学习手册:Java异常面试问题
10、Java学习手册:Java设计模式面试问题
11、Java学习手册:Java数据库面试问题
概述:Java与C++的不同点
不同点 | Java | C++ |
---|---|---|
1 | Java为编译型-解释型语言(程序源代码通过Java编译器编译成字节码,然后由JVM解释执行) | C++为编译型语言(源代码经过编译和链接后生成可执行的二进制代码) |
2 | Java执行速度比C++慢,Java能够跨平台执行 | C++不能跨平台执行 |
3 | Java为纯面向对象语言,所有代码都必须在类中实现,除基本数据类型外,所有类型都是类 | - |
4 | Java语言中不存在全局变量或全局函数(1、全局变量破坏了引用的透明性;2、全局变量制造了命名空间冲突;) | C++兼具面向过程和面向对象编程的特点,可以定义全局变量和全局函数 |
5 | Java没有指针概念,有效防止C++语言操作指针可能引起的系统问题 | C++有指针的概念 |
6 | Java语言不支持多重继承,但是Java语言引入了接口的概念,可以同时实现多个接口 | C++支持多重继承 |
7 | Java语言提供了垃圾回收器来实现垃圾的自动回收,不需要程序显式的管理内存的分配 | C++需要开发人员去管理对内存的分配 |
8 | Java语言没有析构函数,但引入了finalize()方法 | C++语言会把释放资源的代码放到析构函数中 |
9 | Java不支持运算符重载 | C++语言支持运算符重载 |
10 | Java语言没有预处理器,但提供import机制与C++预处理器功能类似 | C++语言支持预处理 |
11 | Java不支持默认函数参数 | C++支持默认函数参数 |
12 | Java不支持goto语句(Java中goto是保留关键字) | C++支持goto语句 |
13 | Java不支持自动强制类型转换,必须由开发人员显式地强制类型转换 | C++支持自动强制类型转换 |
14 | Java不包含结构和联合,所有内容都封装在类里面 | C++中,结构和联合的所有成员均为公有,往往会导致安全性问题 |
15 | Java具有平台无关性,即对每种数据类型都分配固定长度 | C++中同一个数据类型在不同的平台上会分配不同的字节数 |
16 | Java提供对注释文档的内建支持 | - |
17 | Java提供了一些标准库,用于完成特定任务 | C++则依靠一些非标准的、其他厂商提供的库 |
知识点
4、Java学习手册:String&StringBuffer&StringBuilder&StringTokenizer
6、Java学习手册:finally块中的代码什么时候被执行?
7、Java学习手册:final&finally&finalize
16、Java学习手册:length属性&lengh()方法
19、Java学习手册:break&continue&return
24、Java学习手册:“==”&equals&hashCode
29、Java学习手册:ArrayList&LinkedList&Vector
31、Java学习手册:Collection&Collections
33、Java学习手册:死锁
36、Java学习手册:HashMap&HashTable&TreeMap&WeakHashMap
42、Java学习手册:XML
44、Java学习手册:Error(错误类)&Exception(异常类)
47、Java学习手册:JDBC中getString()方法与getObject()方法有什么区别?
48、Java学习手册:JDBC中Class.forName的作用是什么?
50、Java学习手册:JDBC中Statement&PreparedStatement&CallableStatement
55、Java学习手册:内部类
59、Java学习手册:泛型
61、Java学习手册:单例模式——写出一个线程安全的单例类
62、未完待续。。。
1、Java语言是编译性-解释性语言,因为其同时具备编译性和解释性两种特性。
(1)编译性语言:只须编译一次就可以把源代码编译成机器语言,后面的执行无须重新编译,直接使用之前编译结果就可以,执行效率较高。代表语言:C、C++、Pascal等。
(2)解释性语言:源代码不能直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。代表语言:Python、JavaScript、Shell、Ruby、MATLAB等。
2、Java中的程序代码可以分为结构定义语句和功能执行语句。
3、字符串连接
Java程序中一句连续的字符串不能分开在两行书写。如果为了方便阅读,想将一个太长的字符串分在两行书写,可以先将这个字符串分为两个字符串,然后用加号(+)将这两个字符串连起来,在加号(+)处断行。
System.out.println("这是第一个"+
"Java程序");
4、文档注释
文档注释是以/*开头,并在注释内容末尾以/结束。文档注释是一段代码概括性的解释说明,可以使用javadoc命令将文档注释提取出来生成帮助文档。
5、Java命名规则
(1)包名所有字母一律小写。
(2)类名和接口名每个单词的首字母要大写。
(3)常量名所有字母都大写,单词之间用下划线连接。
(4)变量名和方法名的第一个单词首字母小写,从第2个单词开始,每个单词首字母大写。(驼峰命名法)
6、取模运算
在进行取模(%)运算时,运算结果的正负取决于被取模(%左边的数)的符号,与模数(%右边的数)无关。
例:(-5) % 3 = -2, 5 % (-3) = 2
7、Static关键字
Java学习手册:static
(1)由static修饰的变量称为静态变量,也称类变量。
(2)静态变量定义位置在所有方法之外。
(3)静态变量与静态方法都是在类从磁盘加载至内存后被创建,与类同时存在,同时消亡。
(4)静态变量又称类的成员变量,在类中是全局变量,可以被类中的所有方法调用。(注:Java中不存在全局变量)
(5)静态变量的值由JVM自动初始化
整型→0,布尔型→false,浮点型→0.0,字符串型→null,字符型→Unicode编码为0的字符(该字符不可见)
static关键字只能用于修饰成员变量,不能用于修饰局部变量,否则编译会报错。
在一个静态方法中只能访问static修饰的成员,原因在于没有被static修饰的成员需要先创建对象才能访问,而静态方法在调用时可以不创建任何对象。
8、JRE与JDK
JRE(Java运行环境):为Java运行提供运行时环境,包括JVM和Java系统类库。
JDK(Java开发工具包):JDK除了包含JRE之外,还包含开发Java程序所需要的一些命令、工具。
运行一个Java程序所需的最小环境为JRE,开发一个Java程序所需的最小环境为JDK。
9、Scanner类中next()与nextLine()的区别
- 1、next()
(1)一定要读取到有效字符之后才可以结束输入
(2)对输入有效字符之前遇到的空白,next()方法会自动将其去掉
(3)只有输入有效字符后才将其后面输入的空白作为分隔符或结束符
(4)next()不能得到带有空格的字符串 - 2、nextLine()
(1)以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
(2)可以获得空白
10、String类型的值不可变(字符串内容不可更改)
public class StringDemo{
public static void main(String[] args){
String s1 = "Hello";
String s2 = s1 + "World!";
System.out.println(s2)