Java 第二天

写在开头

 今天学的知识点比较多也比较零碎,大多和之前学过的c语言差不多
 这个开头是第三天加上的,我觉得都加上开头会比较整齐。 😜
 里面的知识点不可能都展现在标题,大家使用搜索功能(很快就可以修复好)搜自己想要了解的知识点。

注释、关键字、标识符

注释

 在Java的编写过程中我们需要对一些程序进行注释,除了自己方便阅读,更为别人更好理解自己的程序,所以我们需要进行一些注释,可以是编程思路或者是程序的作用,总而言之就是方便自己他人更好的阅读。注释是不参与程序的编译和运行过程的。

书写注释的必要性

 编写代码时添加注释的好习惯是每一位优秀程序猿都应该具有的。
 举个栗子,老板让你写一个程序,你才思泉涌,三下五除二就写出来一份非常优秀的代码,运行起来非常完美,内存控制的也非常好。老板很满意,奖金也大大地有。但是你没有写注释。过了好久,你又需要这个代码,翻箱倒柜找出来了,打眼一看你傻眼了,这都是些啥啊圈圈叉叉的,你已经没有看下去的欲望了,只想知道这是哪个傻逼写出来的,一想原来是自己…..
 再来一个栗子,我们在公司写项目的时候很多时候都是需要多部门的配合的,你写完这一份程序后是要递交给下一个部门的,如果你没有写注释的话,你的程序是百分百会被打回来的,你知道最后写中文注释会比你边写代码边添加注释慢很多的。

注释的书写方法

对于java注释我们主要了解三种:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//单行注释,只能写一行注释
/*
这是一个多行注释
在这个注释内所有文字都不参与程序的编译和运行
可以放心的写自己想要写的内容
*/
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
/**
*这种叫文档注释,前面我们说过,我们在写项目中大多是协同工作
*
* 你需要有一份项目文档让下一个部门更好的理解你编写的程序
*
* java bin javadoc文件能把这个文档注释生成项目文档
*
*这边我们大体有了解就好了
*
* @author:cnfox
*/

关键字和常见关键字表

关键字: 系统定义的特殊的字符,字母,英文单词,在Java中有各自的功能和用途
不允许被用户单独定义的。

注:

  1. 所有的关键字都是小写的,java是严格区分大小写的语言,理论上说大写的关键字是可以被单独定义的,但是避免混淆一般没有这样做的。
  2. 所有的关键字再开发工具里,都是有特殊的颜色显示的,如果上面代码中的public、class、out等。
  3. 在给类,方法,变量,接口,枚举,起名字时,不能够使用关键字。

贴一张常见的关键字

类别 关键字 说明
访问控制 private 私有的
protected 受保护的
public 公共的
类、方法和变量修饰符 abstract 声明抽象
class
extends 扩充,继承
final 最终值,不可改变的
implements 实现(接口)
interface 接口
native 本地,原生方法(非 Java 实现)
new 新,创建
static 静态
strictfp 严格,精准
synchronized 线程,同步
transient 短暂
volatile 易失
程序控制语句 break 跳出循环
case 定义一个值以供 switch 选择
continue 继续
default 默认
do 运行
else 否则
for 循环
if 如果
instanceof 实例
return 返回
switch 根据值选择执行
while 循环
错误处理 assert 断言表达式是否为真
catch 捕捉异常
finally 有没有异常都执行
throw 抛出一个异常对象
throws 声明一个异常可能被抛出
try 捕获异常
包相关 import 引入
package
基本类型 boolean 布尔型
byte 字节型
char 字符型
double 双精度浮点
float 单精度浮点
int 整型
long 长整型
short 短整型
变量引用 super 父类,超类
this 本类
void 无返回值
保留关键字 goto 是关键字,但不能使用
const 是关键字,但不能使用
null

标识符、组成及写作规则 //严格区分大小写

标识符:Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。即用户自己定义

  • 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线( _ )开始

  • 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线( _ )或数字的任何字符组合

  • 关键字不可以作为标识符,并且严格区分大小写

举例:
_ 123(正确)
1$(错,数字不能开头)
ch(错,不能带有,符号中,只能有_ 或 $ )
charch123_567t$(正确)

常量、变量、数据类型

常量

常量的定义

常量:程序的执行过程中,数值不会发生变化的量

四种类型的常量

  • 整数类型的常量 5
  • 小数类型的常量 3.1415
  • 字符类型 ‘A’ ‘ a ‘’7’ ‘家’
  • 布尔类型 boolean true false

在代码中体现下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class ChangLiang 
{
public static void main(String[] args)
{
//整数类型的常量
System.out.println(5);
//小数类型常量
System.out.println(3.14);
//字符类型的常量,每次''中只能写一个字符
System.out.println('家');
//布尔类型的常量: 真 假
System.out.println(true);
}
}

常量与默认类型

变量

变量的定义

变量:指在程序的执行过程中,数值可能会发生变化的量。例如体重, 每天都在变化,所以可以把体重定义成一个变量

变量的组成和定义方法

变量的定义格式:
数据类型 变量名 = 变量值;

变量名: 符合标识符的组成规范

例如: Ch1 $4 a a1
= 表示赋值,将=号右边的数据赋值给左边的变量
; 在java中表示一句表达式的结束

我们在代码中体现下:

1
2
3
4
5
6
7
8
9
public class BianLiang 
{
public static void main(String[] args)
{
// 定义一个变量
int i = 9;
System.out.println(i);//9
}
}

变量定义的注意事项⭐⭐⭐

A:作用域
    变量定义在那个大括号内,它就在这个大括号内有效。
    并且,在同一个大括号内不能同时定义同名的变量。

B:初始化值
    没有初始化值得变量不能直接使用。
    只要在使用前给值就行,不一定要在定义是给值。

    定义变量的格式:
        a:数据类型  变量名 = 初始化值;
        b:数据类型  变量名;
            变量名 = 初始化值;

C:在一行上建议只定义一个变量
    可以定义多个,但不建议

我们在代码里体现下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class  BianLianZhuYi
{
public static void main(String[] args)
{
// 1. 向上找离变量最近的一对大括号,这对大括号的范围就是变量可以使用的范围,但只能在变量定义之后使用
int i = 0;
{
int y = 3;
System.out.println(y);
System.out.println("括号里"+i);
}
System.out.println(i);
//System.out.println(y); 错误代码,原因,y值使用范围没有到这里

// 2. 同一个区域中,变量不能重复定义,指变量名不能重复

// int i = 9 ; 错误代码,变量重复复定义了
//double i = 3.14; 错误代码,变量重复定义了

i = 99;// 变量的赋值,并不是定义变量
System.out.println("-------"+i);//

// 3. 变量的定义和赋值可以分开
int u ;
u = 100;
System.out.println("++++++++++"+u);//

// 4. 在方法中,变量不赋值不能使用

double w;
//System.out.println("++++++++++"+u); 错误代码,w定义在方法中,并且没有赋值,不能使用

数据类型

数据类型定义

Java的基本数据类型也叫做内置类型是java语言本身提供的数据类型,是引用其他类型的基础。

四类八种基本数据类型 //内存分配

4种数据
  • byte 1字节 -128–127
  • short 2字节 1111111111111111 -32768–32767
  • int 4字节 -2147483648–2147483647
  • long 8字节 -2^63-1–2^63
小数类型
  • float 4字节 单精度
  • double 8字节 双精度
字符类型
  • char 2字节

表示一个字符,写作方式英文’’,举例: ‘家’,’A’,’3’,字符中可能会是中文,中文在内存中需要两个字节,因此char2个字节

布尔类型:

  • boolean true (真) false(假)

布尔类型一般用于进行数据的判断(3>4 结果可以使用false)或者是逻辑的判断(客户姓名正确 并且 客户的密码正确)

我们在代码中体现下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public class ShuJuLeiXing 
{
public static void main(String[] args)
{
//整数byte类型-128-127
byte b = 35;
System.out.println(b);

//整数short类型
short s = 23;
System.out.println(s);

//整数int类型
int i = 899;
System.out.println(i);

// 整数long类型
long l = 345678956;
System.out.println(l);

// 当整数的值超过int类型的数值范围时,数据后面加L,否则编译错误
long ll = 3456789567899L;
System.out.println(ll);

// 浮点类型float,定义的float后面需要添加F
float f = 3.14F;
System.out.println(f);

// 浮点类型double,java中的浮点数,默认是double类型
double d = 6.789;
System.out.println(d);

// 字符类型,使用英文的'',里面可以写一个任意字符
char c = '7';
System.out.println(c);

// 布尔类型,true 或者 false
boolean b1 = true;
System.out.println(b1);
}
}

基本数据类型的大小排序

byte < short = char < int < long < float < double

char 字符,’’,占2个字节,范围0-65535
boolean 不参与大小比较

说明: 小数长度计算方式,与整数不一样,小数的范围大于整数范围

char字符类型

字符类型: char,每次表示一个字符,’7’
将每一个字符,转换成了一个10进制数
过程: 将一个字符,转换成一个十进制数(编码)
将十进制数,转换成了一个字符(解码)
这种编码和解码的过程,ASCII 码表

ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符
0 NUT 32 (space) 64 @ 96
1 SOH 33 ! 65 A 97 a
2 STX 34 66 B 98 b
3 ETX 35 # 67 C 99 c
4 EOT 36 $ 68 D 100 d
5 ENQ 37 % 69 E 101 e
6 ACK 38 & 70 F 102 f
7 BEL 39 , 71 G 103 g
8 BS 40 ( 72 H 104 h
9 HT 41 ) 73 I 105 i
10 LF 42 * 74 J 106 j
11 VT 43 + 75 K 107 k
12 FF 44 , 76 L 108 l
13 CR 45 - 77 M 109 m
14 SO 46 . 78 N 110 n
15 SI 47 / 79 O 111 o
16 DLE 48 0 80 P 112 p
17 DCI 49 1 81 Q 113 q
18 DC2 50 2 82 R 114 r
19 DC3 51 3 83 S 115 s
20 DC4 52 4 84 T 116 t
21 NAK 53 5 85 U 117 u
22 SYN 54 6 86 V 118 v
23 TB 55 7 87 W 119 w
24 CAN 56 8 88 X 120 x
25 EM 57 9 89 Y 121 y
26 SUB 58 : 90 Z 122 z
27 ESC 59 ; 91 [ 123 {
28 FS 60 < 92 / 124 |
29 GS 61 = 93 ] 125 }
30 RS 62 > 94 ^ 126 `
31 US 63 ? 95 _ 127 DEL

关注的有哪些:

  1. 0-9 在ASCII码表中,对应的十进制数为: 48-57
  2. A-Z 在ASCII码表中,对应的十进制数为: 65-90
  3. a-z 在ASCII码表中,对应的十进制数为: 97-122

ASCII在代码中的应用:

字符与整数进行比较或者运算,这种情况,char类型的字符要先转换成对应的十进制数,然后再与整数进行比较或者运算
例如: i 问? 是不是一个小写字母
思路: i>=97 并且 i<=122 (比较) ; i+5(运算)

我们在代码中体现下:

1
2
3
4
5
6
7
8
9
10
11
public class CharDemo 
{
public static void main(String[] args)
{
/*char类型的字符,可以与整数进行比较或者运算的,先按照ASCII转换成十进制数,在进行比较或者运算 */
char c = 'a';// 97
System.out.println(c > 100);// boolean false
System.out.println(c+15);// 97 + 15 = 112

}
}

数据类型的自动类型转换

不同的数据类型,能一起进行计算吗? 可以
自动类型转换: 小的数据类型范围,可以直接转换成大的数据类型范围
举例: 水瓶 500ml 杯子 100ml 过程: 杯子中的水装入水瓶中,可以(要求数据类型值一致)
byte < short = char < int < long < float < double

我们在代码中体现下:

1
2
3
4
5
6
7
8
9
10
11
public class  ZiDongZhuanHuan
{
public static void main(String[] args)
{
//自动类型转换,小的数据类型,转成大的数据类型
byte b = 78;
// = 将右边的值,赋给左边的变量 int = byte
int i = b ;
System.out.println(i);
}
}

数据类型的强制类型转换

强制类型转换: 大的数据类型转换成小的数据类型
举例: 水瓶 500ml 杯子 100ml
过程: 水瓶中的水装入杯子中,可以(要求数据类型值一致),但是水溢出了

强制类型转换公式: 小的数据类型 变量名 = (小的数据类型)大的数据类型;

我们在代码中体现下:

1
2
3
4
5
6
7
8
9
10
public class QiangZhiZhanHuan
{
public static void main(String[] args)
{
double d = 3.1415;
//小的数据类型 变量名 = (小的数据类型)大的数据类型;
int i = (int)d;
System.out.println(i);// 3
}
}

注意:

  1. 在强制类型转换中,可以回出现损失精度(数据可能不准确),所以强制需谨慎
  2. byte short char 在进行整数运算时,都会自动提升为int类型,运算结果也是int类型

我们在代码中体现下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Test 
{
// byte short char 在进行整数运算时,都会自动提升为int类型,运算结果也是int类型
public static void main(String[] args)
{
byte b = 70;
int i1 = 70+5;// 5常量,5 int类型
System.out.println(b+5);//75

short s = 99;
//short = (short)int 强制类型转换
short s1 = (short)(s+b);// short s1 = s+b; short + byte = int 错误,原因,int不能直接转换成short
int ss = s+b;

System.out.println("int类型+"+ss);//报不报错,不报错的话,结果多少
System.out.println("short类型+"+s1);//报不报错,不报错的话,结果多少

char c = 'A'; // ASCII转换成十进制数 65
int c1 = c+1;// 什么类型?
System.out.println(c1);

}
}

字符串类型

字符串: 使用英文的””,双引号中,可以写入任意的内容
Java中,所有字面意义上的””,都是字符串类型
String类型,就表示字符串

数据类型分类:

  1. 基本数据类型: 用于表达一些比较简单的数据,共8中,不变
  2. 引用数据类型(类,数组,接口): 表示在内存中的地址值
    比方: 你这个人本身,简单,名字(张三),可以看成基本数据类型
    家族,复杂,名字(张氏家族), 记录张氏在世界上的地址,看成引用数据类型
  3. String本身就是一个类(class),String是属于引用数据类型

String类型的定义格式;
String 变量名 = “78 65 0及”;

String使用的注意事项:

  1. String与任何的数据类型进行+,都表示字符串的拼接
  2. String与任意类型拼接后的结果,仍然是一个String类型
  3. “”,一定是英文的双引号

我们在代码中体现下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class StringDemo 
{
public static void main(String[] args)
{
//定义一个String类型的字符串
String s = "78 65 0及";
System.out.println(s);

// String与任何的数据类型进行+,都表示字符串的拼接
String s1 = "89";
int i = 1;
String ss = s1+i;
// int ii = s1+i; 错误代码,因为字符串和任意数据类型拼接的结果,仍然是String类型,String无法转换成int
System.out.println(s1+i);//891
System.out.println(ss);//891
}
}

晚安

 今天就到这里了,明天见,加油!

-------------本文结束感谢您的阅读-------------
0%