读书笔记(Java开发实战经典):Java基础知识
Java环境变量配置。
Windows下需要将JDK目录下的bin目录放置环境变量下。然后设置classpath
点击确定保存后在cmd中测试环境配置是否成功。
javac -version
java -version
2
2
1
javac -version
2
java -version
出现版本信息后即为配置成功:
注: 1.PATH修改后需要重新启动命令行。
2.javac是java本身提供的编译命令。主要是将*.java文件编译成.class文件
classpath属性的作用:
classpath主要指的是类的运行路径。在执行java命令时JVM在运行时需要通过classpath加载所需要的类,默认情况下classpath指向的是当前目录。
classpath在编译时不起作用。 classpath属性只在Java运行时起作用。而在Java编译时,如果命令行所在目录不是*.java所在的目录,则应该输入完整的路径名称 如:"javac E:\Hello.java"
- Java实现可移植性靠的是JVM,JVM就是一台虚拟的计算机,只要在不同的操作系统上植入不同版本的JVM,Java程序就可以在各个平台上移植,做到“一次编写,处处运行 ”
- Java中程序的执行步骤为:
- 使用javac将一个*.java 文件编译成 *.class文件.
- 使用java可以执行一个*.class文件
- 每次使用Java命令执行一个*.class文件时 都会启动JVM , JVM通过classpath给出的路径加载所需要的类文件, 在Windows下可以通过set classpath 设置类的加载路径。
- Java程序的开始是由主方法开始的
- java语言的注释方式有三种:
- 单行注释: //
- 多行注释: /* ... */
- 文档注释:/** ... */
- Java中的变量名称可以由英文字母,数字,下划线和美元符号组成,标识符不能以数字开头,也不能是java的关键字。Java变量有大小写区分
- Java的基本组成是类,使用public class和class都可以声明一个类。但public class声明的类必须与文件名相同。
Java数据类型:
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
byte、short、int、long、float、double、boolean、char。
Java中对于一个整形常量其默认类型就是int型,一个浮点常量默认类型是double型。
如果想使用long型需要在数字后面加一个字母L或者l
如果想使用float型需要在浮点数字后面加一个字母F或者f
若在变量的声明时没有给变量赋初值,则会给该变量默认值、六种数字类型的默认值是0 char的默认值是 \u0000(‘’) boolean的默认值是false
程序类型的自动转换分为 自动类型转换 与 强制类型转换。
满足以下条件即可进行自动类型转换
- 转换前的数据类型与转换后的数据类型兼容。
- 转换后的数据类型的表示范围比转换前的类型大
一个整形常量和一个浮点常量进行计算之后结果也会变成一个浮点数据,如果是两个int常量进行计算最终结果还是int,其小数部分会被忽略。
任何数据类型碰到String类型的变量或常量之后都向String类型转换。
引用类型
- 对象、数组都是引用数据类型。
- 所有引用类型的默认值都是null。
- 一个引用变量可以用来引用任何与之兼容的类型。
Java 常量
常量在程序运行时是不能被修改的。
在 Java 中使用 final 关键字来修饰常量。
final double PI = 3.1415927;
1
final double PI = 3.1415927;
若是全局常量需要加上修饰符号 public static
强制类型转换:
(要转换的数据类型) 变量名称;
x
1
(要转换的数据类型) 变量名称;
当表达式中有类型不匹配时 有下列处理方法:
- 占用较少的字节的数据类型会转换成占用较多字节的数据类型
- 有short和int类型时则用int类型
- 字符类型会转换成int类型
- int类型会转换为float类型。
- 若一个操作数的类型为String,则其他的操作数也会转换成String
- 布尔类型不能转换至其他类型
数组与方法:
一维数组的声明与分配内存:
数据类型[] 数组名 = null; // 声明一维数组
数组名 = new 数据类型[长度]; // 分配内存给数组
1
数据类型[] 数组名 = null; // 声明一维数组
2
数组名 = new 数据类型[长度]; // 分配内存给数组
访问数组中的元素,利用索引来完成, 索引标号从0 开始。如:int[] socre = new int[3] 就是给socre分配了3个空间大小 所以下标取值为 0 - 2 若使用socre[3] 则会出现数组下标越界异常ArrayIndexOutOfBoundsException
数组的静态初始化:
数据类型[] 数组名 = {初始值0, 初始值1, ... 初始值n};
x
1
数据类型[] 数组名 = {初始值0, 初始值1, ... 初始值n};
二维数组:
数据类型[][] 数组名 = null; // 声明二维数组
数组名 = new 数据类型[行数][列数]; // 分配内存给数组
x
1
数据类型[][] 数组名 = null; // 声明二维数组
2
数组名 = new 数据类型[行数][列数]; // 分配内存给数组
二维数组在分配内存时,必须告诉编译器二维数组的行与列的个数。
方法的声明与使用:
修饰符 返回值类型 方法名称(类型 参数1, 类型 参数2, ...){
程序语句;
[return 表达式]
}
1
修饰符 返回值类型 方法名称(类型 参数1, 类型 参数2, ...){
2
程序语句;
3
[return 表达式]
4
}
如果方法没有返回值, 则在返回值类型处要明确写出void。此时方法中的return语句可以省略。
方法的重载:
重载就是方法名称相同,但是参数的类型,和参数的个数不同。通过传递参数的个数,及其类型的不同可以完成不同功能的方法调用。
数组的复制:
System.arraycopy(源数组名称,源数组开始点,目标数组名称,目标数组开始点,复制长度)
- 数组是由一组相同类型的变量组成的数据类型, 他们以一个共同的名称来表示
- Java中的数组必须经过声明数组和开辟内存两个步骤,声明数组时在栈内开辟空间, 只开辟栈空间的数组是无法使用的,必须有指向的堆内存空间才能使用, 使用关键字 new 开辟堆内存空间, 并同时指定开辟的空间大小
- 取得数组的长度可以利用 数组名.length 来完成
- Java中允许二维数组中每行的元素个数不同
- 方法的重载为方法名称相同,参数的类型或个数不同。
- 数组的传递属于引用数据类型的传递。传递的是堆内存地址的使用权,一个数组可以有多个名称指向同一堆内存空间,每一个名称都可以修改堆内存中的内容