day02
一、编辑工具
1. 电脑的记事本
2. 高级记事本:Notepad++、Editplus
优点:有颜色、有行数提示、格式好看
3. 集成开发工具IDE:Eclipse、Idea
优点:不仅可以编辑代码,同时也将编译、运行、调试等功能全部集成了。不再需要手动去调用,而是直接点击鼠标即可。
1.1 notepad++简单配置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ys5FrMW5-1620290813458)(img/image-20210407101132639.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XPS9lNv1-1620290813460)(img/image-20210407101233985.png)]
二、注释
对代码进行解释说明的文字
2.1 格式
单行注释: // 注释的内容
注意:单行注释不能换行,但可以嵌套
多行注释: /* 注释的内容 */
注意:多行注释可以换行,但是不能嵌套
文档注释: /** 注释的内容 */
2.2 注意事项
1. 不参与代码的编译
2. 注释的内容不会出现在代码的结果中
3. 写代码的时候注释的内容至少要占到代码的百分之30
4. 注释也可以用来对代码进行逻辑梳理
5. 注释也可以用来对代码进行调试
//这是一个Demo类,//相当于是一个房子可以装很多东西
class Demo {
/*
这是一个主方法
相当于是房子的门
所有程序要执行的话,必须要从这个门通过
*/
public static void main(String[] args) {
System.out.println("HelloWorld!!!");
}
}
三、关键字
Java中有特殊含义的英文单词
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sa7ERyzg-1620290813463)(img/image-20210407110105682.png)]
注意:
1. 其中有两个保留字goto、const,这两个保留字是目前Java不会使用,但是以后是否使用不清楚。
2. 关键字都是小写的
3. 起名字的时候不要和Java关键字重复
四、标识符
用来给类、接口、方法、变量、常量、枚举起名字的字符序列(字符串)
4.1 组成规则
1. 英文字母 a-zA-Z
2. 数字 0-9
3. 特殊符号 $和_
4. 其它大部分国家的字符
注意:数字不能开头
五、常见的命名规则
这个规则只是程序员约定俗称的规则,尽量都遵守。
- 类和接口
- 所有单词的首字母大写
- 一个单词: Hello
- 多个单词: HelloWorld
- 方法和变量
- 第一个单词小写,从第二个单词开始首字母大写
- 一个单词: sum
- 多个单词: getMax
- 常量和枚举
- 所有单词的字母都大写,多个单词中间有下划线分隔
- 一个单词:PI
- 多个单词:MAX_NUMBER
六、计算机中的数组存储
计算机只能识别0和1,也就是二进制。计算机中存储的基本单位是位(bit),一位有两种状态,要么是0要么是1。
8位(bit)组成了一个字节(byte),所以1个字节可以表示2^8=256种状态
1byte = 8bit
1kb = 1024byte
1mb = 1024kb
1gb = 1024mb
1tb = 1024gb
1pb = 1024tb
内存:我们平时说的内存条就是内存,所有程序的运行的时候都会加载到内存中执行,执行完毕之后再释放占用的空间。(临时性的)
硬盘:主要持久性的存放资料。(持久性的)
七、常量
常量就是在程序运行过程中不会发生改变的量。
7.1 分类
按有无名字
- 字面值常量
所见即所得,看到的数据就知道这个数据的值
比如:3、 "中国"、3.15
- 符号常量
相当于是有名字的常量,我们拿到这个符号之后知道符号代表什么内容,但是并不知道内容具体的值是多少
比如:PI、E
按照数据类型
整数常量 3
小数常量 3.15
布尔常量 false、true
字符常量 '中'、'公'
字符串常量 "helloworld"
空常量 null
空字符串和空常量的区别:
空字符串:在内存中有空间,但是不存储内容
空常量: 在内存中根本不存在
注意事项:
除了空常量之外,所有的常量都可以通过输出语句进行打印
class Demo {
public static void main(String[] args) {
//整数常量
//System.out.println(3);
//小数常量
//System.out.println(3.15);
//布尔常量
System.out.println(false);
//字符常量
System.out.println('中');
//字符串常量
System.out.println("HelloWorld");
//空常量
//System.out.println(null); //编译报错
//符号常量
System.out.println(Math.PI);
}
}
八、变量
可以在程序运行过程中发生改变的量
8.1 格式
格式一:
数据类型 变量名 = 数据;
格式二:
数据类型 变量名;
变量名 = 数据;
格式三:
数据类型 变量名1, 变量名2=数据2, 变量名3;
变量名1 = 数据1;
变量名3 = 数据3;
class Demo {
public static void main(String[] args) {
//格式一:数据类型 变量名 = 数据;
//int a = 3;
/*
格式二:
数据类型 变量名;
变量名 = 数据;
*/
//int a;
//a = 3;
/*
格式三:
数据类型 变量名1, 变量名2=数据2, 变量名3;
变量名1 = 数据1;
变量名3 = 数据3;
*/
int a, b = 3, c;
a = 10;
c = 20;
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z2N6G51L-1620290813467)(img/image-20210407141822028.png)]
class Demo2 {
public static void main(String[] args) {
int a = 3;
System.out.println(a); //3
//变量的修改
a = 5;
System.out.println(a); //5
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-evUGvP2b-1620290813469)(img/image-20210407142633995.png)]
8.2 注意事项
1. 局部变量:就是声明在方法上或者方法内部的变量
2. 局部变量在使用之前必须要进行初始化(就是给变量赋值)才能使用
3. 变量的作用范围: 只能在声明变量的大括号中使用
4. 在同一个作用范围之内,变量名不能重复
九、数据类型
Java是一个强类型语言(强制类型定义语言),所以在声明一个变量的时候,一定要将这个变量的数据类型给确定了。因为不同的数据类型占用的空间大小不一样,根据数据的使用不同的数据类型,可以充分利用内存空间。
9.1 分类
基本数据类型
是一些最基本的、简单的数据,如整数、小数
整数类型
byte 1个字节 -128~127 【掌握】
short 2个字节 -2^15~2^15-1
int 4个字节 -2^31~2^31-1 【常用】
long 8个字节 -2^63~2^63-1
小数类型【IEEE754标准】
float 4个字节
double 8个字节
布尔类型
boolean true、false
字符类型
char 2个字节 0-65535
注意:
1. 4个字节长度的float表示的范围比8个字节的long都大
引用数据类型
是一些由基本数据类型及其它引用数据类型组成的较为复杂的数据类型
类
接口
数组
注意:
1. Stirng字符串类型是类类型的一种
9.2 整数和小数的默认数据类型
整数的默认数据类型是int类型。
如果要表示一个long类型的话,需要在整数的后面加上一个大写或者小写的L(建议大写L)
小数的默认数据类型是double类型
如果要表示一个float类型的话,需要在小数的后面加上一个大写或者小写的F
class Demo {
public static void main(String[] args) {
//数据类型 变量名 = 数据;
//byte b = 127;
//byte b = 128; //编译报错,不能从int类型转为byte类型
//short b = 128;
//int b = 128;
//long b = 2147483647;
//long b = 2147483648; //编译报错,超过了int类型的范围
/*
因为整数的默认类型就是int类型,那么如何表示一个long类型的数据呢?
解决方案:我们可以在整数的后面加上一个大写或者小写的L(建议大写L),来表示这个整数是一个long类型的数据
*/
long b = 2147483648L;
System.out.println(b);
}
}
class Demo2 {
public static void main(String[] args) {
//double d = 12.35;
//float d = 12.35; //编译报错,不能从double类型转为float类型
float d = 12.35F;
System.out.println(d);
}
}
9.3 数据类型之间的转换
自动(默认)数据类型转换
从小的数据类型到大的数据类型。因为这种转换不会发生数据丢失
int类型之下的类型进行运算的时候,结果都会变为int类型
int类型之上的类型进行运算的时候,结果都会变为较大的类型
数据类型从小到大排列:
byte < short = char < int < long < float < double
class Demo3 {
public static void main(String[] args) {
//byte b = 3;
//short s = b;
int a = 3;
float s = a;
System.out.println(s);
}
}
class Demo5 {
public static void main(String[] args) {
//两个byte类型计算,结果为int类型
//byte a = 3;
//byte b = 5;
//byte c = a + b; //编译失败,不能从int类型转为byte类型
//int c = a + b;
//一个byte和一个short运算,结果为int类型
//byte a = 3;
//short b = 5;
//short c = a + b; //编译失败,不能从int类型转为short类型
/*
通过以上代码,得到如下规律:
int类型之下的类型进行运算的时候,结果都会变为int类型
int类型之上的类型进行运算的时候,结果都会变为较大的类型
*/
//System.out.println(c);
System.out.println("---------------");
//一个int和一个long计算,结果为long类型
//int a = 3;
//long b = 5;
//一个long和一个double计算,结果为double类型
//long a = 3;
//double b = 5.0;
//long c = a + b; //编译报错,不能从double类型转为long类型
//一个float和一个double运算,结果为
byte a = 3;
double b = 5.0;
byte c = a + b;
System.out.println(c);
}
}
强制的数据类型转换
从大的数据类型到小的数据类型。因为这种转换可能会发生数据丢失现象,所以必须要强制
格式:
较小的数据类型 变量名 = (较小的数据类型)较大的数据类型;
class Demo4 {
public static void main(String[] args) {
double d = 3.15;
//int a = d; //编译失败,不能从double类型转为int类型
//较小的数据类型 变量名 = (较小的数据类型)较大的数据类型;
int a = (int)d;
System.out.println(a);
}
}
class Demo6 {
public static void main(String[] args) {
byte a = 3;
byte b = 5;
//较小的数据类型 变量名 = (较小的数据类型)较大的数据类型;
byte c = (byte)(a + b);
System.out.println(c);
}
}
9.4 字符类型
用char来声明,并且用单引号引起来的单个字符
char ch = '中';
因为计算机只能识别0和1,那么我们如何将文字和符号存储到计算机中呢?
我们可以定义一个表,这个是二进制数据和文字一一对应的表。这张表被我们称为编码表(也被称为字符集)。
比较常见的编码表:
ASCII编码表
记住三个特殊的值:
字符0 --- 数字48
字符a --- 数字97
字符A --- 数字65
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ehX7hgYI-1620290813471)(img/image-20210407161823081.png)]
因为ACSII编码表只能表示英文国家的字符,并不能表示其它语言国家的字符。所以各个国家就在ACSCII编码表的基础之上根据自己国家的字符又定义了很多编码编码表,其中可以用来表示中文的有:
GBK: 一个英文字符用一个字节表示,一个中文字符用两个字节表示
UTF-8: 一个英文字符用一个字节表示,一个中文字符用三个字节表示
9.5 字符串类型
需要用String来声明,并且用双引号引起来的内容
注意:
字符串类型和其它任何类型都可以通过 + 号拼接,拼接之后的结果为字符串类型
class Demo8 {
public static void main(String[] args) {
String s = "HelloWorld";
//String ss = s + 55;
System.out.println(s + 5 + 5); //helloworld55
System.out.println(5 + 5 + s); //10hellworld
System.out.println(s + (5 + 5)); //helloworld10
//将int类型转为字符串类型
int i = 10;
String ss = "" + i;
System.out.println(ss);
}
}
一个中文字符用两个字节表示
UTF-8: 一个英文字符用一个字节表示,一个中文字符用三个字节表示
#### 9.5 字符串类型
> 需要用String来声明,并且用双引号引起来的内容
注意:
字符串类型和其它任何类型都可以通过 + 号拼接,拼接之后的结果为字符串类型
```java
class Demo8 {
public static void main(String[] args) {
String s = "HelloWorld";
//String ss = s + 55;
System.out.println(s + 5 + 5); //helloworld55
System.out.println(5 + 5 + s); //10hellworld
System.out.println(s + (5 + 5)); //helloworld10
//将int类型转为字符串类型
int i = 10;
String ss = "" + i;
System.out.println(ss);
}
}