Java第一行代码,常量
1. Java第一行代码
1.1 Notepad++准备
1. 安装非C盘
2. 可以考虑在桌面留有快捷方式 Create Shortcut on Desktop
菜单栏 --> 设置 --> 首选项
1.2 Java第一行代码
class FristJava {
public static void main(String[] args) {
System.out.println("World Hello 世界欢迎你");
}
}
1.3 编译运行Java代码
需要使用JDK开发工具中
java.exe javac.exe 通过CMD 命令提示符操作
javac.exe
编译Java代码,生成对应的.class字节码文件
java.exe
执行.class字节码文件,得到对应的执行结果
在CMD中的操作格式
明确当前CMD操作工具目录是当前Java文件的保存路径
找到当前Java文件所在目录文件,在地址栏输入cmd,当前对应当前目录的命令提示符
编译Java代码
格式:
javac FirstJava.java ==> javac 文件名.java
生成一个.class字节码文件
执行Java程序
格式:
java FristJava ==> java .class文件名
1.4 第一行代码问题
1. 拼写错误
大小写,英文单词,观察代码的颜色变化
2. 标点符号错误
注意中英文符号
3. 括号 引号问题 成双成对的标点符号一次处理完成
{} [] () "" ''
4. 路径问题
代码文件保存,一定要规整
5. 编码问题
如果编译过程中,或者执行过程中出现中文乱码问题,可以在
Notepad++ --> 编码 --> 转为 ANSI
2. 计算机数据存储问题【了解】
2.1 计算机数据存储单位
计算机中最小数据处理单位
字节 byte 一个字节byte 对应 8个二进制位 8bit(比特)
正常情况下计算机数值的进制关系是
1024 windows
1000 macOS 硬件设备进制
1024byte ==> 1KB
1024KB ==> 1MB
1024MB ==> 1GB
1024GB ==> 1TB
1024TB ==> 1PB
1024PB ==> 1EB
得数据者的天下!!!
2.2 进制转换
进制 | 基数范围 | 规则 |
---|---|---|
二进制 | 0,1 | 逢2进1 |
八进制 | 0 ~ 7 | 逢8进1 |
十进制 | 0 ~ 9 | 逢10进1 |
十六进制 | 0 ~ 9, A ~ F | 逢G进1 |
二进制和十进制的转换关系
118(10) = 0111 0110(2)
0101 0110(2) = 86(10)
以上计算全部通过计数器来完成!!!不需要自行计算
【要求】
1 2 4 8 16 32 64 128 256 512 1024
2的幂次方 0 ~ 10 需要记住
八进制数展示方式
要求八进制数以0开头
0123 0777
0889 × 超出8进制展示数据范围
后期Linux系统中,对于文件操作权限使用常见
十六进制数据展示方式
要求使用0x 或者 0X 开头
0x1234
0xabcd 0xABCD 十六进制数据展示不区分大小写,这两个一模一样!!!
十六进制在开发中一般用于【内存地址标记】
【谨记】
所有需要进制转换的地方,都使用计数器完成!!!
2.3 原码,反码和补码【当天学,当天忘】
冯·诺依曼
1. 计算机数据处理采用二进制方式
2. 计算机所有的操作模式都是文件模式 read write
实际问题
118 + (-118) = 0
正负数计算来演示原码,反码和补码解决问题
降低了计算机的运算逻辑复杂度
正整数 118 原码,反码和补码是一致的,都是当前数据对应的二进制数据形式
118(10) ==> 0111 0110(2)
负整数 -118
原码:
对应正整数二进制形式,最高位表示符号位为1
-118(10) ==> 0111 0110(正118对应二进制位)
最高位表示符号位为1 ==> 1111 0110 (-118 原码)
反码:
原码 符号位不变,其他位按位取反 1==>0 0==>1
1111 0110 (-118 原码) ==> 1000 1001(-118反码)
补码:
反码 + 1
1000 1001(-118反码) + 1 ==> 1000 1010(-118补码)
补码就是当前-118在计算机中数据保存形式
118 + (-118) = 0
二进制完成
0111 0110(2)
1000 1010(-118补码)
1 0000 0000 ==>
最高位超出当前有效范围 1 无效 剩下8个二进制位全部为0, 结果为01
3. 常量【伪重点】
3.1 生活中的常量
数值单位
G π E C
0.618
60分钟一小时 12个月一年
文字
1 2 3 4 5
A B C D E
你 我 他
文本
"北国风光,千里冰封,万里雪飘..."
"先帝创业未半..."
不能发生改变的内容
数据,文本,文字...
public class Test {
// 常量使用final关键字修饰
static final double PI = 3.14;
public static void main(String[] args) {
System.out.println(PI);// 输出3.14
}
}
// 常量:初始化后不能修改的变量,可以看做特殊的变量
// 常量名一般全大写
4. 注释
注释并不会被执行,是写给我们人看的
java中的注释有三种:
单行注释:只注释一行 //
多行注释:可以注释多行 /* */
文档注释:大多注释在方法和类上 /** */
5. 标识符
5.1 关键字
Java中所有的组成部分都需要名字,类名、变量名、方法名都是标识符
类名不能使用关键字
1)48个关键字:abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、
else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、
native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、
this、throw、throws、transient、try、void、volatile、while。
2)2个保留字(现在没用以后可能用到作为关键字):goto、const。
3)3个特殊直接量:true、false、null。
5.2 标识符注意点
1. 能够使用英文字母(A ~ Z a ~ z) 数字(0 ~ 9)以及唯一可以使用的标点符
号 _
2. 标识符要求英文字母开头
3. 标识符严格区分大小写
4. 标识符没有严格的长度限制,会根据实际需求情况,来限制标识符的长度
5. 标识符要求见名知意,动宾结构
studentAge getStudentAge setStudentAge
6. 标识符要求符合命名规则
a. 驼峰命名法
小驼峰 一般用于方法名
studentAge getStudentAge setStudentAge
大驼峰 一般用于类名
FristJava String ComboPoolDataSource
b. 下划线命名法
MAX_ARRAY_SIZE DEFAULT_CAPACITY MAX_VALUE
MIN_VALUE
5.3 数据类型
基本数据类型:
byte 1
short 2
int 4
long 8
float 4
double 8
char 2
boolean 视情况而定
数据类型转换(boolean不参与数据类型的转换):
char(16 bit)
|
byte(1 bit) -> short(16 bit) -> int(32 bit) -> long(64 bit)
| |
float(32 bit) double(64 bit)
根据类型所占内存大小,小可转大,大转小会失去精度
123456789101112131415161718192021222324252627282930313233343536373839404142
引用数据类型:
基本类型和引用类型的关系:
基本类型 字节 包装器类(引用类型)
boolean 视具体情况 Boolean
byte 1 Byte
char 2 Character
short 2 Short
int 4 Integer
long 8 Long
float 4 Float
double 8 Double
引用数据类型:类、接口、数组
两者的异同:
1.Java基本类型存储在栈中,因此它们的存取速度要快于存储在堆中的对应包装类的实例对象。从Java1.5开始,
JVM就可以完成基本类型和它们对应包装类之间的自动转换。因此我们在赋值、参数传递以及数学运算的时候
就可以像使用基本类型一样使用它们的包装类,但这并不意味着你可以通过基本类型调用它们的包装类才具有
的方法。另外,所有基本类型(包括void)的包装类都使用了final修饰,因此我们无法继承它们扩展新的类
也无法重写它们的任何方法。而引用数据类型是存储在堆中的.
2.基本类型的优势:数据存储相对简单,运算效率比较高
3.包装类的优势:有的容易,比如集合的元素必须是对象类型,满足了java一切皆是对象的思想
4.声明方式不同,基本类型不适用new关键字,而包装类型需要使用new关键字来在堆中分配存储空间;
5.存储方式及位置不同,基本类型是直接将变量值存储在堆栈中,而包装类型是将对象放在堆中,然后通过引用来使用;
6.初始值不同,基本类型的初始值如int为0,boolean为false,而包装类型的初始值为null
7.使用方式不同,基本类型直接赋值直接使用就好,而包装类型在集合如Collection、Map时会使用到