1、public class和class的区别:
* 一个java源文件当中可以定义多个class。
* 一个java源文件当中public的class不是必须的。
* 一个class会定义生成一个xxx.class字节码文件。
* 一个java源文件当中定义公开的类的话,智能有一个,并且该类名称必须和java源文件名称一致。
* 每一个class当中都可以编写main方法,都可以设定程序的入口,向执行B.class中的main方法:
- java B,想执行x.class当中的main方法:java x
* 注意:当在命令窗口中执行java Hello,那么要求Hello.class当中必须有主方法。
第二章:Java语言基础
1、标识符
package com.ly.java.Main02;
/**
* 关于java当中的标识符
* 1、什么是标识符?
* - 在Java源程序中,凡是可以自己起名的自己命名的单词都是标识符。
* 2、标识符的命名规则?
* * 一个合法的标识符智能由数字、字母、下划线、美元符号组成,不能含有其他符号
* * 不能以数字开头
* * 严格区分大小写
* * 关键字不能做标识符
* * 理论上没有长度限制,但是最好不能太长
* 3、标识符的命名规范?
* * 最好见名知其意
* public class UserService{
* public void login(String username,String password)
* }
* }
* * 遵守驼峰命名方式 SystemService UserService StemService
* * 类名、接口名:首字母大写,后面每个单词大写。
* * 变量名、方法名:首字母小写,后面每个单词首字母大写。
* * 常量名:全部大写
*/
@SuppressWarnings("all")
/**
* IdentfierTest01 是一个类名,名字可以修改
* main 是一个方法名
* args 是一个变量名
* public class static void 是关键字
* 关键字不要可刻意去记忆,需要在使用的过程中去记忆
*/
public class IdentfierTest01 {
public static void main(String[] args) {
}
public static void deSome(){
}
}
2、关键字
@SuppressWarnings("all")
/**
* IdentfierTest01 是一个类名,名字可以修改
* main 是一个方法名
* args 是一个变量名
* public class static void 是关键字
* 关键字不要可刻意去记忆,需要在使用的过程中去记忆
*/
public class IdentfierTest01 {
public static void main(String[] args) {
}
public static void deSome(){
}
}
3、字面值
package com.ly.java.Main02;
/**
* 关于字面值:
* * 字面值:一眼看上去就知道数字大小的数据
* - 10 、100
* - 3.14、
* - "abc"
* - 'a'
* - true 、false
* * 字面值就是数据!
* * 字面值是Java源程序的组成部分之一,包括标识符和关键字都是Java源程序的组成部分。
* 数据在现实世界当中是分门别类的,所以数据在计算机编程语言当中也是有类型的:【数据类型】
* - 10 、 100 属于整数型字面值
* - 3.14 属于浮点型字面值
* - true、false 属于布尔型字面值
* - "abc"\"汉字" 属于字符串型字面值
* - 'a'、'人' 属于字符型字面值
* * 注意:Java语言当中所有的字符串字面值必须使用双引号括起来;Java语言当中所有字符串必须使用单引号括号括起来。
*/
@SuppressWarnings("all")
public class ConstTest01 {
public static void main(String[] args) {
System.out.println("abc");
System.out.println("汉字");
System.out.println(10);
System.out.println(false);
System.out.println(true);
System.out.println('a');
System.out.println(3.14);
}
}
4、变量
package com.ly.java.Main02;
/**
* 关于Java语言当中的变量:
* 1、什么是变量?
* * 变量本质上来说是内存中的一块空间,这块空间“有数据类型”、“有名字”、“有字面值”。
* * 变量包含三部分:数据类型、名称、字面值【数据】
* * 变量是内存中存储数据的最基本的单元。
* 2、数据类型的作用?
* * 不同的数据类型有不同的类型,不同的数据类型会分配不同大小的空间。
* * 数据类型是知道程序在运行阶段应该分配多大的内存空间。
* 3、变量要求:变量中存储的具体的“数据”必须和变量的“数据类型一致”,当不一致的时候编译报错。
* 4、声明/定义变量的语法格式:
* 数据类型 变量名;
* * s数据类型: int
* * 变量名:只要是合法的表示符就行。规范中要求:首字母小写,后面每个单词首字母大写。
* 5、变量声明之后怎么赋值?
* 语法格式:变量名 = 字符值;
* 要求:字符值的数据类型必须和变量的数据类型一致。
* = 等号是一个运算符,叫做赋值运算符,赋值运算符先运算等号友鞞的表达是,表达式执行结束之后的结果赋值给左边的变量。
* 6、声明和赋值可以放到一起完成。int i = 10;
* 7、变量赋值之后,可以重新赋值,变量的值可变化;
* 8、有了变量的概念之后,内存空间得到了重复的使用;
* 9、通常访问一个变量的包括两种访问形式:
* * 第一种:读取变量中保存的具体数据 get/获取
* * 第二种:修改变量中厝村的具体数据 set/设置
* 10、变量在一行上可以声明多个 int a,b,c
*/
@SuppressWarnings("all")
public class VarTest01 {
public static void main(String[] args) {
/**
* 声明一个int类型的变量起名i
* 编译报错:变量i并没有完成初始化
*/
int i;
/**
* 给i变量赋值,i变量在这里完成出书画,内存开辟
*/
i = 0;
System.out.println(i);
/**
* 变量i再次重新赋值
*
*/
i = 0;
System.out.println(i);
/**
* 一行上可以同时声明多个变量
* 可以声明多个但要分开赋值
* 赋值就近原则
*/
int a, b, c;
a = 100;
b = 200;
c = 300;
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
package com.ly.java.Main02;
/**
* 关于Java语言当中的变量:使用所有的基础开发业务
* 1、在方法体当中的java代码,是遵循自上而下的顺序依次执行的,逐行执行。
* 第一行;
* 第二行;
* 第三行;
* 特点:第二行的代码必须完整的结束之后,第三行程序才能执行。
*/
@SuppressWarnings("all")
public class VarTest02 {
public static void main(String[] args) {
int i = 100;
System.out.println(i);
/**
* 先声明赋值在访问
*/
}
}
package com.ly.java.Main02;
/**
* 关于Java中的变量:变量的作用域
* 1、什么是作用域?
* 变量的作用域,其实描述的就是变量的有效范围。‘
* 在什么范围内是可以被访问的,只要出了这个范围该变量就无法访问了。
* 2、变量的作用域只要记住一句话:出了大括号就不认识了。
*/
@SuppressWarnings("all")
public class VarTest03 {
static int k = 90;
public static void main(String[] args) {
/**
* 变量i的作用域是maiin方法
* 在整个main方法中是有效的,可见的,可以被访问的
*
*/
int i = 100;
System.out.println(i);
System.out.println(k);
/**
* 以下会编写一个for循环语句
*
*/
for (int j = 0; j < 10; j++) {
}
/**这里无法访问a变量
* sout(a);
*
*/
int j;//作用域是main方法
for (j = 0; j < 12; j++) {
}
}
public static void doSome() {
/**
* 这里无法访问main方法当中的变量i
* 这里已经出了i的作用域
* sout(i);
* */
System.out.println(k);
}
}
package com.ly.java.Main02;
@SuppressWarnings("all")
/**
* 根据变量的分类:
* 根据变量声明的位置来分类:
* * 局部变量
* - 在方法体当中声明的变量叫做局部变量
* * 成员变量
* - 在方法体外【类体之内】声明的变量叫做成员变量
* 在不同的作用域当中,变量名是可以相同的。
* 在同一个作用域当中,变量名是不能重名的。
*/
public class VarTest04 {
/**
* 成员变量;
* 主方法:入口
*/
int k = 200;
public static void main(String[] args) {
/**
* i变量就是局部变量
*/
int i = 100;
/**
* jAVA遵循就近原则
* 类体中不能直接编写Java语句【除声明变量之外】
*/
System.out.println(i);
}
public static void doSome() {
/**
* 局部变量
*/
int I = 56;
}
}
5、数据类型
package com.ly.java.Main02;
@SuppressWarnings("all")
/**
* 关于Java中的数据类型:
* 1、数据类型的作用是什么?
* 程序当中有很多数据,每一个数据都是相关类型的,不同数据类型的数据占用空间大小不同。
* 数据类型的作用随时知道JVM在运行程序的时候给该数据分配多大的内存空间
* 2、Java中的数据类型包括两种:
* * 基本数据类型
* * 引用数据类型
* 3、关于基本数据类型:
* * 基本数据类型包括四大类八小种:
* 第一类:整数型、byte,short,int,long
* 第二类:浮点型、float,double
* 第三类:布尔型、boolean
* 第四类:字符型、char
* 4、字符串”abc“不属于基本数据类型,属于引用数据类型,字符属于基本数据类型:
* * 字符串使用双引号"abc"
* * 字符使用单引号’a‘
* 5、八种基本数据类型各自占用空间大小是多少?
* 基本数据类型 占用空间大小
* -----------------------------------------------------------
* byte 1
* short 2
* int 4
* long 8
* float 4
* double 8
* boolean 1
* char 2
* 6、计算机在任何情况下都只能识别二进制。0 or 1 : 断开 or 接通
* 7、什么是二进制?
* * 数据的一种表现形式。十进制表示满十进一原则。二进制表示满二进一原则。
* 8、字节(byte) :
* 1 Byte = 1024 bit【1哥字节 = 8个比特位】1个比特位表示一个二进制位:1/0
* 1 KB = 1024 Byte
* 1 MB = 1024 KB
* 1 GB = 1024 MB
* 1 TB = 1024 GB
* 1 TB = 1024 * 1024 * 1024 * 1024 * 8
* 9、整数型当中的byte类型,占用1个字节,所以byte类型的数据占用8个Byte
* * 关于Java当中的数字类型,数字都是有正负之分的,所以在数字的二进制当中有一个二进制位被称为符号位。并且这个符号位在所有二进制位的最左边,0表示正数,1表示负数。
* * byte类型最大值:01111111【10000000(2)- 1 】
* 10、计算机只认识二进制,那么计算机怎么表示现实世界的文字的?
* * 八种数字类型数据当中,byte、short、int、long、float、double、boolean这7种数据类型计算机在表示的时候比较容易,因为底层都是数字,十进制的数字和二进制之间“默认”情况下是不存在任何转换关系的。
* * 为了让计算机可以表示现实世界当中的文字,我们需要进行人为的干涉,需要人负责提前制定好"文字"和"二进制"之间的对照关系。这种对照关系被称为:字符编码。
* * 计算机最初只支持英文,最先出现的字符编码是ASXII码,当编码和节码的时候采用同一套/对照表,不会出现乱码。当时解码和编码的时候采用的不是同一套对照表,会出现乱码问题。
*
*
*/
public class DataTypeTest01 {
public static void main(String[] args) {
}
}