01-Java语法基础(二)-知识
本章节主要讲解Java中的类&Java程序的入口&变量&数据类型
文章目录
一,Java中的类
程序的世界其实和我们生活的现实世界很像,我们现实世界是由各种各样类型的生物或者物体组成的,而程序世界是由各种各样的类型的数据组成的。
在现实世界里,我们会将一系列具有相同特点和相同行为的东西归纳到一起称为一类,名给他取个名字。比如人类,狗类,鱼类。
如果在Java世界里,需要创建一个人出来,首先需要在这个世界里,定义一个人类出来,定义方式如下:
public class 人{
}
class是Java中用来修饰(表示,定义)类。 class 后面 的 就是这个类的名字(类名),以上代码,就是在Java世界里定义了人这种类型。定义好了之后,就可以使用 这个类型创建人出来了。
二、Java的程序入口?
Java程序世界相当于区别于我们现实世界的另外一个世界,如果需要进入程序世界,就需要提供一个程序世界的大门,这个大门在Java当中为main,写法如下:
public class MainTest{
public static void main(String[] args){
}
}
Java 程序的入口: 打开Java世界的大门
固定的格式(类似于 打开大门的固定形状的钥匙,Java虚拟机只认这个形状的)
注意写法: String 中的S 大写
如果要写一个可以运行的Java程序,就必须得有main方法,而且格式要固定
注意: 程序(代码)中所有的标点符号,都是在输入法为英文状态下输入
三,打印输出语句
先看看下面一段程序:
public class ClassDemo01 {
/**
* Java 程序的入口: 打开Java世界的大门
* 固定的格式,
* 注意写法: String 中的S 大写
* 如果要写一个可以运行的Java程序,就必须得有main方法,而且格式要固定
* @param args
*/
public static void main(String [] args){
//Java 中的单行注释 (给一行代码添加标注的时候可以用这个)
//Java中的打印输出语句(作用:会在控制台打印输出内容)
//固定格式:System.out.print("内容");
System.out.print("社会我攀哥");
System.out.print("人狠也罗嗦");
//输出换行:可以使用println() 表示输出内容以后换行
System.out.println("澳门皇冠赌场");
System.out.println("性感攀哥在线唠嗑");
//输出换行: \n(键盘上的Enter键) 在需要换行的位置添加 \n
System.out.print("人在塔在,\n我的大刀早已饥渴难耐,\n天王盖地虎,小鸡炖蘑菇\n");
//制表符 : \t (键盘上的Tab键)
System.out.println("生活\t真美好,Java\t我很好");
}
}
运行效果:
使用到 System.out.println(),那么它是什么呢?
- println() 是一个方法。
- System 是系统类。
- out 是标准输出对象。
这句话的用法是调用系统类 System 中的标准输出对象 out 中的方法 println()。
java中输出语句:System.out.println,system.out.print,system.out.printf
概念上的区别是这样得:
print将它的参数显示在命令窗口,并将输出光标定位在所显示的最后一个字符之后。
println 将它的参数显示在命令窗口,并在结尾加上换行符,将输出光标定位在下一行的开始。
转义字符:
转义字符 | 含义 |
---|---|
’ | 单引号字符 |
\" | 双引号字符 |
\\ | 反斜杠字符 |
\t | 垂直制表符,将光标移到下一个制表符的位置 |
\r | 回车 |
\n | 换行 |
\b | 退格 |
\f | 换页 |
四,Java中的注释
什么是注释?
注释就是用来解释说明的,是写个程序员看的,不是给JVM看的(类似于读书时做的笔记)
注释是不会被编译的
单行注释
语法 //
双斜线后面的内容会被注释掉,被注释掉的内容是不会被编译的,换行后就无效了
多行注释
语法 /* */
使用多行注释的时候需要注意不要出现交叉的情况,开始的/在遇到第一个/的时候就结束了
多行注释比较灵活
文档注释
语法 /** */
文档注释往往是会生成使用说明书的
文档注释往往使用在类,常量,静态方法等内容上面的
五,Java中的数据类型
数据类型:我们生活的自然界,是由各种各样类型的生物或者物体组成的,Java程序世界同样,也是由各种类型的数据组成。比如:自然界中有(植物类,动物类,湖泊类)人类,鱼类,鸟类,Java中也有。
Java中的数据类型:基本数据类型和引用数据类型
5.1基本数据类型
5.1.1 整型
Java中用来表示整数的数据类型**(所占内存空间不同)
整型 | 字节Byte(所占内存空间) | 旅店房间 | 位数bit(长度) | 最大值 | 最小值 |
---|---|---|---|---|---|
byte | 1字节 | 单人间 | 8 | 2^7-1(127) | -2^7(-128) |
short | 2字节 | 双人间 | 16 | 2^15-1(32767) | -2^15(-32768) |
int(整形默认类型) | 4字节 | 四人麻将间 | 32 | 2^31-1 | -2^31 |
long | 8字节 | 总统套房 | 64 | 2^63-1 | -2^63 |
5.1.2 浮点型
Java中用来表示小数的数据类型
数据类型 | 字节Byte | 说明 |
---|---|---|
float | 4字节 | 单精度小数(不常用)比如:3.14 |
double(浮点数默认类型) | 8字节 | 双精度小数(常用)比如:3.1415926 |
5.1.3 字符型
Java中用来表示文字或者符号的数据类型
用单引号包含的可打印的单个字符:‘a’ ‘M’ ‘8’ ‘#’ ‘中’ ’ ’
不是字符的例如:‘java’ “A” '8’不等于8
数据类型 | 说明 |
---|---|
char | 字符,文字等 |
5.1.4 布尔类型
Java中用来表示真假,是否,对错的类型
数据类型 | 说明 |
---|---|
boolean | 只有两个值:true:真,对,是;false:假,错,否 |
5.2 引用数据类型
Java中jdk封装的类,以及自定义的Java类,都属于引用数据类型
每一种基本数据类型,都对应有引用数据类型(称之为基本数据类型的包装类)
这些引用数据类型封装了对基本数据类型进行操作的方法以及数据,比如求基本数据类型的最大值,最小值以及位数,都可以使用对应的引用数据类型来进行获取。
基本数据类型 | 引用数据类型 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
char | Character |
float | Float |
double | Double |
boolean | Boolean |
5.3 案例:利用基本数据类型对应的引用数据类型测出最大值,最小值,以及长度
package basic;
/**
* java中的数据类型:
* 数据类型:我们生活的自然界,是由各种各样类型的生物或者物体组成的,
* java程序世界同样,也是由各种类型的数据组成
* 自然界:人类,鱼类,鸟类
* Java:基本数据类型和引用数据类型
*
* 基本数据类型:8种
* 整型:byte(1字节)、short(2字节)、int(3字节)、long(4字节)
* Java种用来表示整数的数据类型:有不同大小,不同尺寸
* 考虑:都是表示整型,why四个?(两个人出差,有四种房间)
* 位数 最大值 最小值
* byte 8 127(2^7-1) -128(-2^7)
* short 16 2^15-1 -2^15
* int 32 2^31-1 -2^31
* long 64 2^63-1 -2^63
*
* 浮点型:double(双精度小数)、float(单精度小数)
* Java种用来表示小数的数据类型
* 考虑:3.14 3.1415926
*
* 字符型:char
* Java中用来表示文字或者符号的数据类型
* 布尔型:boolean
* Java中用来表示真假,是否,对错的类型
*
* 引用数据类型:Java中jdk封装的类,以及自定义的Java类,都属于引用数据类型
*
* 每一种基本数据类型,都对应有引用数据类型(称之为基本数据类型的包装类)
* 这些引用数据类型封装了对基本数据类型进行操作的方法以及数据,比如求基本数据类型的最大值,最小值以及位数,都可以使用对应的引用数据类型来进行获取。
* 基本数据类型 引用数据类型
* byte Byte
*
* 面试题:Java中有几种数据类型?
*
* 作业:测出short,int,long,char的最大值,最小值,尺寸
*/
public class Demo02 {
public static void main(String[] args) {
//获取byte的最大值
System.out.println("byte的最小值:"+Byte.MIN_VALUE);
//获取byte的最小值
System.out.println("byte的最大值:"+Byte.MAX_VALUE);
//获取byte的尺寸(位数)
System.out.println("byte的位数:"+Byte.SIZE);
//获取char的最大值,需注意转为int
System.out.println("char的最小值:"+(int)Character.MIN_VALUE);
//获取char的最小值
System.out.println("char的最大值:"+(int)Character.MAX_VALUE);
//获取char的尺寸(位数)
System.out.println("char的位数:"+Character.SIZE);
}
}
六,变量
6.1 什么是变量
变量:顾名思义,可以改变的一个量(非专业回答)
变量:计算机用来存储变量可变数据的内存空间(专业回答)
注意:Java中的变量归根结底,它是一个内存空间,要占一定内存大小
内存就像宾馆(计算机),你和同事出差,前台客服会说有。。。。房间,单人间住不下,四人间和总统套房浪费,所以两个人就住双人间吧
房间(宾馆房间) | 变量(内存变量) | 文本文档(计算机文本文档) |
---|---|---|
房间名字 | 变量名 | 文本文字(文档名) |
房间类型 | 变量类型 | 文本类型 |
入住客人(可变) | 变量值(初始化) | 文本的值(可变) |
6.2 如何创建变量
创建变量的方式,可以类比创建文档的方式,首先我们来看看文档是怎么创建的:
1,鼠标右键电脑屏幕,选择新建,然后选择文档类型(确定变量的类型)
2,给文本文档取名(确定变量的名称)
3,在文本中添加内容(给变量赋值)
综上:我们总结变量创建的两个要点:
1.确定变量的类型和名称(声明变量):int b; 表示:声明了一个名称为b的int类型变量。
2.给变量赋值(变量的初始化): b=20; 表示:给变量b赋值为20。
注意:使用变量,必须经过前面两步,少一步都不行
6.3 变量的命名规则和规范
1)变量的命名规则(必须遵守,法律):
只能以“字母”,“_”,“$”开始,不能以数字开始,不能包含特殊字符(+、-、*、/),以及Java关键字
2)变量的命名规范(不必须,道德,老奶奶跌倒,可以不扶,但良心过意不去,会被道德谴责):
变量命名尽量见名知意,采用驼峰命名法。
驼峰命名法:变量首字母小写,如果多个单词,从第二个单词开始,首字母大写。举例:startGame
定义变量需要注意的问题:
编译器默认的整数类型为int类型(整数超过int范围就会报错,如果定义long类型超过int范围需要在数据后面加 L 或 l )。
默认的小数类型是double类型(如果需要定义float时需要在数据后面加 F 或 f )。
char类型的数据,如果要定义字符,需要用单引号包裹,并且单引号中只能是一个字符内容(不能用双引号)。
package basic;
/**
* 掌握变量
*
* 变量:可以改变的量(非专业回答)
* 变量:计算机用来存储可变数据的内存空间(专业)
* 变量:类似于酒店的房间,也类似于文本文档(新建一个文本文档,取名)
* 单人间、双人间、四人间、豪华套房
* 变量创建方式类似于创建文本文档的方式:
* 创建变量的步骤:
* 1,确认变量的类型和名字(Java中的声明变量)
* 2,给变量赋值(变量的初始化)
*
* 变量的命名规则(必须遵守:法律):
* 以字母,下划线,$开始,可以包含数字,但不能包含特殊符号(+、-、*、/等),不能使用Java关键字
*
* 变量的命名规范(不必须:道德,老奶奶跌倒):
* 驼峰命名法:首字母小写,如果有多个单词组成,从第二个单词开始,首字母大写 startGame
* 见名知意:看见变量名就知道表示的含义
* 类名首字母大写
*
* 使用变量时需要注意的问题
* 变量使用之前必须经过声明并且初始化
*/
public class Demo03 {
public static void main(String[] args) {
//1.声明变量,
byte b1;//(最大值是127,最好用byte类型,节省空间)
//2.给变量赋值(变量的初始化)
b1 = 122;
//使用变量b1,从内存空间中找到b1的名字
System.out.println(b1);
b1 = 125;
System.out.println(b1);
//创建变量时,讲两步写在一起
//创建变量的格式:数据类型 变量名 = 变量值
int i1 = 98;
//有些书上定义变量
byte b2,b3,b4; //不建议
//byte 5b; //错误,用数字开始了
//byte &ss_2s;//错误,有特殊符号
byte $_public;//正确
byte ¥sdd;//不建议,正确,¥中文羊角符
int time;
int akb48;
int _interface;
int O_o;
int $$$;
//System.out.println(b4); //错误,只声明但没有初始化
//System.out.println(a);//错误,声明初始化都没有
//b5 = 8;//没有声明类型,不知道内存中要有多大的内存空间
//使用变量时需要注意的问题
//1,Java中变量名不能重复定义
//byte b2 = 123;
//2,赋值时,值不能超过数据类型所能表示的范围
//byte b5 = 128; //错误,byte范围是-128-127
//long的最大值:9223372036854775807
//3,在编译器中默认的整数类型是int类型,如果超出int表示范围2147483647就会出错
//如果需要定义long类型的数据,一般建议加l或L
long l1 = 2147483648L;
double d1 = 0.1;
//3,编译器默认的小数类型是double类型,如果需要定义float类型的小数,需要在后面添加f或者F
//float f1 = 0.1;
float f1 = 0.1f;
}
}
总结:
1.变量使用之前,必须经过声明并且初始化
2.变量不能重复定义
3.变量名只能以字母,下划线,$开始,可以包含数字,不能包含特殊字符(+、-、*、/)等,不能使用Java关键字
4.变量命名最好见名知意,并且采用驼峰命名法
5.如果定义long类型的数据,最好值后面加l或者L,如果定义float类型的数据,最好值后面加f或者F
七,Java中的数据类型转换
1)自动类型转换(隐示类型转换)
当小范围的数据向大范围的数据类型时,会发生自动类型转换 byte -> int (会自动转)
2)强制类型转换(显示类型转换):慎用
当大范围的数据类型向小范围数据类型时,需要强制类型转换 int -> byte (强制性)
package basic;
/**
* Java中的类型转换:
* 自动类型转换(隐式类型转换):
* 当小范围的数据向大范围的数据类型时,会发生自动类型转换
* byte -> int (会自动转)
*
* 强制类型转换(显示类型转换):(慎用)
* 当大范围的数据类型向小范围数据类型时,需要强制类型转换
* int -> byte(强制性)
*/
public class Demo04 {
public static void main(String[] args){
//面试题:
//对于byte ,short ,char 而言,当发生运算时,运算的结果会被隐式转换成int类型
short s = 1;
//short s1 = s+s; s+s之后结果会变成int类型
//int s1 = s+s;
short s1 =(short)(s+s);
System.out.println(s1);
//在解析时候s+=1就等价于s = (short)(s+1),简单来讲就是 s+=1 <=> s = (s的类型)(s+1)
s+=1;
System.out.println(s);
// byte -> int (会自动转)
byte b1 = 125;
int i1 = b1;//byte的b1 会被自动转换成int类型
int i2 = 126;
byte b2 = (byte)i2;
System.out.println(b2);//i2是int类型,如果需要转换成byte类型,就需要强制类型转换
//面试题
int i3 = 130;
//强制类型转换
byte b3 = (byte)i3;
System.out.println(b3);//-126
int i4 = -130;
//强制类型转换
byte b4 = (byte)i4;
System.out.println(b4);//126
}
}
有技术问题或者需要源码的,可以扫描以下QQ二维码获取