Java first line of code and data type
1. Java first line of code
1.1 Notepad ++ preparation
a. 设置 --> 首选项 --> 新建
环境选择 windows
编码集 ANSI
b. 设置 --> 首选项 --> 自动完成
全部反选(训练写代码能力)
1.2 The first line of code
class FirstJava {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
1.3 Compile and execute
javac 编译工具
javac 源文件名.java
例如:
javac FirstJava.java
编译之后会生成一个 FirstJava.class文件,
.class字节码文件,二进制文件,需要借助于JVM执行解释给CPU
java 执行工具
java 类名
例如:
java FirstJava
终端:
HelloWorld
1.4 Problems with the first line of code
1. 注意拼写错误!!!
大小写错误,单词拼写错误
2. 标点符号问题
Java代码中基本上所有的开发使用标点符号都是英文标点符号
3. 成双成对的标点符号一起写完
{} [] () <> "" ''
4. 编码问题
Notepad++ 编码 ==> 转为ANSI即可!!!
2. Code specification [emphasis]
Refer to the AJCG Alibaba Java Development Specification
2.1 What is the identifier
开发中标识符就是名字
类名,方法名,变量名
2.2 AJCG 【Key】
1. 标识符可以使用的字符范围,英文字母(A ~ Z a ~ z) 数字(0 ~ 9) 唯一可以使用的标点符号 _
2. 标识符要求必须英文字母开头
3. 标识符严格区分大小写,大写A和小写a完全不一样!
4. 标识符没有严格的长度限制,但是会根据实际需求来限制标识符的长度
5. 标识符组需要做到见名知意,动宾结构!!!
规范格式
studentAge studentScore 见名知意
getStudentAge setStudentAge 动宾结构
title logo banner
payTime
不允许格式:
int a, b, c, d, e, f, g;
img0 img1 img2 img3 img4 img5
payBeizhu 不允许
tsgly 图书管理员!!! 不允许
6. 推荐使用驼峰命名法和下划线命名法
小驼峰命名法:【适用于 变量名,方法名】
标识符首字母小写,之后的每一个单词首字母大写
studentAge studentScore 见名知意
getStudentAge setStudentAge 动宾结构
iPhone iMac iTouch
大驼峰命名法:【适用于 类名,接口名】
标识符所有的单词首字母全部大写
FirstJava String
下划线命名法:
所有的字母都是大写的情况下,为了区分单词直接的间隔,使用下划线命名法
JAVA_HOME CLASS_PATH
DEFAULT_CAPACITY
7. 已经被Java使用的关键字和保留字不得用于自定义标识符使用
变色的不能使用,大写开头的不能使用
3. Variables 【Key】
3.1 Basic definition
a. 变量是定义在计算机内存中
1. 明确的数据类型
2. 明确的变量名
3. 明确的对应数据
b. 基本的定义格式
1.
数据类型 变量名;
变量名 = 对应数据类型的值; = 赋值
2.
数据类型 变量名 = 对应数据类型的值;
c. 变量分类
a. 基本数据类型
八大基本数据类型
整数
小数
布尔
字符
b. 引用数据类型
字符串
数组
对象
3.2 Basic data types
Integer |
Memory size |
Ranges |
byte |
1 byte 8bit |
-128~127 |
short |
2 bytes 16bit |
-2^16 ~ 2^16-1 |
int |
4 bytes 32bit |
-2^32 ~ 2^32-1 |
long |
8 bytes 64bit |
-2^64 ~ 2^64-1 |
Floating point |
Memory size |
Ranges |
float |
4 bytes |
10^38 |
double |
8 bytes |
10^308 |
Boolean type |
Memory size |
Ranges |
boolean |
1 byte |
true/false |
Character |
Memory size |
Ranges |
char |
2 bytes |
Ability to save Chinese |
3.3 The first line of code that defines a variable
class VariableTest {
public static void main(String[] args) {
byte byteNumber = 10;
short shortNumber = 20;
int intNumber = 30;
long longNumber = 40L;
System.out.println(byteNumber);
System.out.println(shortNumber);
System.out.println(intNumber);
System.out.println(longNumber);
float floatNumber = 3.14F;
double doubleNumber = 0.618;
System.out.println(floatNumber);
System.out.println(doubleNumber);
char ch1 = 'A';
char ch2 = '中';
System.out.println(ch1);
System.out.println(ch2);
boolean ret1 = true;
boolean ret2 = false;
System.out.println(ret1);
System.out.println(ret2);
}
}
3.4 Summary of problems in defining variables
3.4.1 Incompatible data types
VariableTest.java:16: 错误: 不兼容的类型: 从double转换到float可能会有损失
float floatNumber = 3.14;
^
1 个错误
计算机为了保证数据的精度,同时为了数据后期的延展性,会默认把所有的小数都认为是double类型,double占用的内存空间是8字节,而float是4字节,会报错。这里需要告诉计算机3.14是一个float类型,在小数之后加上一个大写F
修改:
float floatNumber = 3.14F;
3.4.2 Long type variable assignment operation requirements
【要求】
给予long类型的数据需要在常量之后加上一个大写L,明确告知计算机这里使用的是一个long类型数据
修改:
long longNumber = 40L;
3.4.3 Variables in Java cannot be used without assignment
VariableTest.java:44: 错误: 可能尚未初始化变量num
System.out.println(num);
^
1 个错误
Java中规定,一个变量在没有被赋值的情况下,不能参与除赋值之外的其他任何操作。
避免了没有必要的野值问题。
3.4.4 Undefined can not be used
VariableTest.java:46: 错误: 找不到符号
num = 10;
^
符号: 变量 num
位置: 类 VariableTest
1 个错误
Java中规定,变量未定义不能使用
必须先定义,后使用
4. Character
4.1 Basic concepts of character constants
英文单引号包含的单个元素
4.2 Escaped characters
\ 转义字符标记
将带有特定含义字符转换为无意义字符
或者把无意义字符,转换成带有一定含义字符
常用:
\'
\"
\n 回车
\t tab键 制表符
转义字符有且只能处理一个字符
\\ 表示一个反斜杠
\\\\ 表示两个反斜杠
4.3 Requirements for using character constants
有且只允许使用字符本身!!!
'A' 'a'
优势:
1. 阅读性好
2. 保证数据类型一致化
3. 减少了没有必要的歧义
5. Character string [First acquaintance]
5.1 String data type
字符和字符串什么关系?
羊肉和羊肉串关系就可以认为是字符和字符串的关系
字符串特定标记
"" 英文双引号包含的所有内容都是字符串本身,并且是一个常量,不可以修改
String字符串数据类型
6. Type conversion 【Understanding】
6.1 Automatic type conversion
小数据类型转换到大数据类型
6.2 Mandatory type conversion
强制类型转换,是从大数据类型到小数据类型的转换过程。
double类型数据保存到int类型,这里需要强制类型转换
格式:
double num1 = 3.5;
// 这里存在数据精度丢失,并且是不可以逆
int num2 = (int) num1;
【个人建议】
对于基本数据类型的强制类型转换,个人不建议使用,这里会导致数据精度的丢失,并且有可能导致其他问题。
强制类型转换在面向对象开发中,可以用来操作对象直接的关系
7. Operator
7.1 Arithmetic operators
+ - * / % ()
1. 从左至右计算
2. 先乘除后加减
3. 有括号先处理括号里面的内容
4. 除数不能为0
%
7 ÷ 3 = 2 …… 1
2 相除的结果
1 是余数
优先级问题:
简单粗暴加括号
= 赋值号
作用是将赋值号右侧的数据,赋值给左侧的【变量】
算术运算符优化
+=, -=, *=, /=, %=
例如:
int num1 = 10;
int num2 = 20;
num2 = num1 + num2; ==> num2 += num1;
8. Homework
1. 代码写三遍,注意代码格式
2. 打字练习