1. 数据
Java程序是用来处理数据的。
使用Java语言编写程序模拟现实世界
1.1数据与信息
数据就是信息在计算机中的载体(表示)
计算机中的数据表示的含义跟上下文有关
1.2计算机只能识别01
在计算机中,所有数据都是以0和1的形式存在的。
CPU,内存,硬盘中的数据都是0和1.
计算机只能识别0和1.
因为计算机是由逻辑电路设计组成的,电路只有通电和断电两种稳定状态,就用 0 1表示
在计算机中存储一个0或者一个1,使用一个bit位
byte字节表示8个二进制位
如:内存16Gbyte==16*1024Mbyte==16*1024*1024Kbyte==16*1024*1024*1024byte
1024==2^10
1.3字符编码
1)编码
把字符转换为对应的码值
2)解码
把一个整数转换为对应的字符
字符编码可以把我们输入的汉字等字符转换位对应的的0 1序列,还可把01序列转换为对应的字符。
3)常用的字符编码
(1)ASCII编码,美国的标准信息交换码,仅使用一个字节存储
ASCII: 'a'--->97 'b'--->98
'A'--->65 'B'--->66
'0'--->48 '1'--->49
' '--->32
(2)ISO-8859-1编码,西欧编码,Tomcat服务器默认的编码格式
(3)GBK/GB2312编码,中文编码,每个汉字都对应两个字节的01序
(4)Unicode编码,为全世界所有语言都提供了唯一的编码。有utf-8,和utf-16等常用的编码格式如常用的:utf-8 utf-16 utf-32
注意:在Java中,Java源代码采用的是unicode编码
乱 码
2. 计算机基础知识
2.1 计算机的组成
计算机由硬件和软件组成
2.1.1 硬件
组成计算机的电子元器件
2. 1.2软件
运行在计算机上的程序
分为系统软件和应用软件两大类:
系统软件是指可以直接操纵硬件的软件,如操作系统,驱动程序,工具软件
应用软件是指为用户开发的软件。
应用软件有三种体系结构:
单机版的应用程序,只能一个用户使用
C/S结构的应用程序,Client/Server,客户端/服务器,如QQ下载客户端,客户端和服务器进行通讯,手机APP
B/S结构的应用程序,Broswr/Server,浏览器/服务器,客户端只要安装一个浏览器即可。
2.2常用快捷键
Ctrl+C 复制
Ctrl+X 剪切
Ctrl+V 粘贴
Ctrl+A 全选
Ctrl+S 保存
Ctrl+ Z撤销
Ctrl+P 打印
Win+E 打开资源管理器
Win+D 显示桌面
Win+R 运行
Win+L 锁屏
2.3常用DOS命令
DOS命令就是在命令窗口执行的命令。
(1)dir命令
显示当前目录的子目录和文件
(2)cd命令
切换当前目录(change directory)
相对路径:从当前目录开始的路径
绝对路径:从根目录开始的路径
(3)cls 清屏
(4)Tab 补全
(5)*通配符
(6) ipconfig查看本机ip地址
(7)退出
2.4 计算机语言的发展
机器语言,是指计算机能识别的指令,只针对特定的计算机编写程序,没有可移植性,效率高,全部使用01进行编程 如00001 0001010 00100010
汇编语言,使用助记符代替计算机指令。
高级语言,接近人的自然语言
需要翻译为计算机指令在执行。
翻译过程一般分为两类:编译和解释
编译:一次性把源代码翻译为机器语言,会生成一组新的指令集,翻译外文书籍
解释:把源代码逐条翻译成机器语言,翻译一条执行一条,类似同声翻译
3.Java 简介
3.1 Java 发展
了解即可
3.2 Java 特点
1.简单性
2.面向对象
3.网络技能
4.健壮性
5.安全性
6.平台中立
7.可移植性
8.解释型
9.高性能
10.多线程
3.3 Java 开发环境的搭建
3.3.1 JDK
Java开发必须安装jdk
安装JDK时,会默认安装JRE,
JRE(Java Runtime Environment),想要运行Java程序,必须安装JRE
1) 下载
2) 安装
3) JDK目录
Bin目录 开发Java所需的命令
Db 自带的数据库,基本不用
Include 包含的头文件
Lib 库文件
Jre 安装JDK时默认安装JRE
Src.zip Java的源代码
3.3.2 配置path环境变量
使用bin目录中的开发命令
1)把当前目录切换到bin目录下
2)使用相对路径
3)使用绝对路径(在命令窗口中遇到空格就认为命令的结束)
如果想在任意的目录中都可以使用bin目录中的开发命令。
在命令窗口中输入一个命令后,系统会先在当前目录中查找该命令是否存在,如果当前目录中没有该命令,系统就会去path的环境变量设置的路径中依次查找该命令是否存在
配置环境变量
第一步:将bin的绝对路径进行复制,如:C:\Program Files\Java\jdk1.8.0_101\bin
第二步:我的电脑--->右击--->属性--->高级系统设置--->高级选项卡--->环境变量--->在系统变量中,找Path--->选中,点击编辑--->光标放在变量值中,按Home键--->ctrl + V并且添加英文分号--->确定
***注意:当环境变量配置好以后,必须将所有的DOS命令窗口都关闭,然后再重新打开
3.3.2 配置classpath
如果在默认情况下,运行字节码文件在当前目录中找,如果找到对应的字节码文件则运行,否则报错。
配置classpath可以解决这一问题。
1.1临时配置classpath
1.设置classpath
set classpath=D:\course\JavaProjects\02-JavaSE\day02
set classpath=D:\course\JavaProjects\02-JavaSE\day02;
set classpath=D:\course\JavaProjects;d:\course;
2.查看classpath
set classpath
3.删除classpath
set classpath=
1.2永久配置classpath 不常用,没有多大价值
4.编写HelloWorld程序
编写Java程序的步骤:编写源代码,编译,运行
4.1编写源代码
任何文本编辑器都可以编写Java源代码
Java源文件的组成部分:
第一部分:类也叫做外部程序
public class Student{
}
第二部分:main方法,也叫做程序的入口
public static void main(String[] args){
}
注意:1.编写在类中
2.一个类中的main方法是可有可无的,如果没有则可以编译,但是不能运行
3.如果一个类中编写main方法则只能有一个
第三部分:编写代码语句部分
System.out.println("大家好");
注意:1.目前所有的Java代码编写在入口中
2.可以编写N条语句,语句也就是以英文分号最为结尾
3.建议每行只编写一条语句
public class Hello
// 类也叫做外部程序
{ public static void main(String[] args)
// main方法,也叫做程序的入口
{ System.out.print("Hello World!!!"); } }
4.2编译
使用Javac命令,编译之后会生成一个字节码文件,字节码文件名和类名相同,字节码文件的扩展名是*.class
4.3运行
使用Java命令 Java后面跟的是类名(字节码文件的文件名)
1-1Java加载与执行分析图
4.4 Hello World程序说明
class Hello{ public static void main (String[]args){ System.out.println("Hello World"); } } /*1.java程序都必须定义在类中,编写Java程序的过程就是不断的定义类的过程 *2.使用class来定义一个类 *3.Hello是程序员起的一个类名 *4.类中的内容需要一对大括号括起来 *5.程序要运行必须编写main方法并且main方法的写法是固定的 *6.public表示公共的 *7.static表示静态的 *8.void表示main方法没有返回值 *9.main是一个方法名 *10.main后面的小括弧是方法的参数 *11.String[]args 是定义了一个字符串类型的数组 *12.main方法的方法体也需要一对大括弧括起来 *13. System.out.println("Hello World");是一条语句Java使用英文半角分号结束 *14.System.out.println("Hello World")作用是在屏幕打印一行信息,就是双引号里的内容 *15.System是Sun公司定义的一个类,表示系统类 *16.System.out代表系统的标准输出设备,默认为显示器 *17.println()是一个方法,作用是在屏幕打印一行信息 *18.注意在Java中符号都是英文半角*/
5.Java源文件与类
* 1) 定义的类必须存储在Java源文件中
* 2)一般情况下,Java源文件与类名相同
* 3)若类名与源文件不相同
javac编译时,跟的是源文件名
生成的字节码文件与类名相同
4)一般情况下,一个Java源文件只定义一个类
5)在Java源文件中可以定义多个类
编译后,每个类都对应一个字节码文件
6)同一个源文件中不同的类都可以有main方法,
一个类是否需要定义main方法,根据这个类是否需要被运行来决定
7)类可以使用public修饰为公共类
包是用来管理类的
若A包想使用B包中的类,在B包中的类必须被定义为public公共类
公共类的类名必须和文件名一致
一个源文件可以定义多个类
公共类
6.java编码规范
6.1存储规范
1)Java源文件的路径中尽量不要含有空格和中文
2)Java源文件名不能有空格,尽量不要有中文(如果使用中文类名或文件名,开发时使用的字符编码与用户使用的字符编码不一样,就会产生乱码)
6.2命名规范
程序员在开发程序时,会给类,变量,方法,常量起一些名字,在起名时要符合命名规范
类名每个单词的首字母都大写
变量名是名词,第一个单词小写,其他每个单词首字母大写。
(驼峰命名法)
方法名是动词,第一个单词小写,其余每个单词首字母大写。
final常量名,一般每个字母都大写
6.3书写规范
在编写代码时要进行适当的换行与缩进
6.4注释规范
6.4.1什么是注释
注释是对代码的解释说明
是给人看的,不参与编译,不影响程序的结构
注释的作用是为了提高代码的可读性
6.4.2Java中注释的分类
单行注释,使用双斜杠开始。
多行注释,使用/* */
文档注释/** 文档注释*/,文档注释可以单独生成相应的文档。
6.4.3文档注释的生成
文档注释可以看作是这个类的使用说明书<br>
1)文档 注释一般用来注释类,方法,成员变量
即在类的前面,在方法的前面,在成员变量的前面可以有文档注释
2)类必须由public修饰为公共的才可以生成相应的文档
方法,变量可以用public修饰也可以用protected修饰
3)文档注释可以用javadoc命令生成相应文档会在当前目录中创建一个doc文件夹,
生成的HTML参考文档就在doc文件夹中
7.Java程序加载与执行过程
8.标识符与关键字
8.1什么是标识符
标识符就是程序员在给编写程序时,给类/方法/变量等起的名字。
8.2标识符的命名规则
1)标识符由字母/数字/下划线和$组成
2)第一个字符不能是数字
3)不能与关键字重名
4)标识符原则上没有长度限制
标识符名规范
1.建议见名知意,最好编写单词,如:HomeWork01 Student name password
2)建议类名每个单词首字母大写
3)建议变量名称、方法名称等采用驼峰命名法,如:name firstName print getInfo
4)建议长度不要超过15个字符,HelloWorld args avg
5)命名时一般不使用$
6)Java中所有的关键字是小写
8.3关键字
关键字又叫保留字,系统预留的有特殊含义的标识符。如class就是用来定义类的,程序员在起名时就不能用。
Java中所有的关键字是小写
数据类型相关:
流程控制相关:
访问权限相关:
方法相关修饰:
类关系相关:
与实例相关的:
包相关:
异常处理:
其他:
未用:
字面量:
9.字面量(字面值):
9.1定义
在Java中,根据一个值(数据)可以得到值(数据)类型
9. 2字面量分类:
整数类型字面量 如:2018 0 -333
浮点类型字面量 如:1.0 0.0001
字符串类型字面量:”ddd”
字符串类型可以存放0个、1个或多个,并且用
英文双引号引起来。
字符类型字面量 如:’ ’’5’,字符类型一次只能存放1个,并使用英文单引号引起来。 注意:一个汉字表示一个字符
布尔类型字面量:只有true和false
10. 变量
10.1 定义
是指内存中的一个存储区域,该区域要有自己的名称(变量名)、类型(数据类型),该区域的数据可以在同一数据类型的范围内不断变化值;
10.2 变量的分类
10.2.1
变量按声明的位置分为:局部变量、成员变量
局部变量:在方法中声明
成员变量:在类中声明
10.2.2
变量按数据类型分为:基本数据类型变量、引用数据类型变量
基本数据类型在内存中存放的是真正的值,如:int、double。。。。。
引用数据类型在内存中存放的是地址(引用),如:String
10.3 变量的操作步骤
第一步:声明变量
语法格式:数据类型 变量名称;
int a;
double b;
第二步:赋值
注意:在Java中,赋值使用=完成,并且将等号右侧的值,赋给左侧的变量名称
语法格式:变量名称 = 值;
第三步:使用
注意:目前的使用只是完成输出
优化:可以将第一步和第二步合二为一,也就是在声明的同时完成赋值
在Java中,如果多个变量数据类型相同时,则可以一次声明多个变量,之间使用英文的逗号分隔
11 数据类型
11.1基本数据类型
分为4大类,共计8种
整数类型:byte short int long
注意:1.整数类型默认为int
2.byte取值范围-128 ---- +127,占1个字节
short取值范围 -32768 ---- +32767,占2个字节
int取值范围 -2的31次方 ---- +2的31次方-1,占4个字节
long取值范围 -2的63次方----- +2的63次方-1,占8个字节
浮点类型:float double
注意:1.浮点类型默认为double
2.float取值范围-3.403E38 ----- +3.403E38,占4个字节
double取值范围-1.798E308 ---- +1.798E308,占8个字节
3.float d2 = 3.0; //出现编译错误
//float d2 = (float)3.0; //强制类型转换
float d2 = 3.0f; //如果在3.0值后面添加f或F就为float类型
布尔类型:boolean
注意:1.只有两个取值分别true、false
2.占1个字节
字符类型:char
注意:1.一次只能存放一个字符,使用英文单引号引起来
2.一个汉字表示一个字符
3.一个字符占2个字节
4.字符可以与整数值进行相互转换
11.2 数据类型之间的转换
小---->大,构成自动类型转换
byte short char int long float double
1 public class Test01{ 2 public static void main(String args[]){ 3 int i1=10; 4 short s1=2; 5 int i2 = i1+s1;//short自动转化成int 6 System.out.println("i2=" + i2); 7 float f1=12.5F; 8 float f2=f1+i2; 9 long l=12L; 10 float f3 = l; 11 System.out.println("f2=" + f2); 12 System.out.println("f3" + f3);//long类型自动转化成float类型 13 14 char c1= 'a'; 15 char c2= 'A'; 16 int i3 = c1+1; 17 int i4= c2+1; 18 System.out.println("i3=" + i3); 19 System.out.println("i4=" + i4); 20 //字符型自动转化成int 21 22 }
大---->小,不能直接赋值,则必须进行强制类型转换,可能存在精度丢失
double d = 3.14;
int i = (int)d;
public class Test01{ public static void main(String[] args){ short ss1=12; byte bb1= 1; char cc1='a'; int ii1=ss1+bb1+cc1; System.out.println("ii1=" + ii1); //short byte char自动转化成int类型 String str1 = "abc"; int i = 123; String str2 = str1+i; System.out.println(str2); /*字符串与基本数据类型之间的运算: * 两者之间的只能进行连接运算, * 即将两个数据拼接到一起, * 得到的结果依旧是一个字符串类型的数据;*/ double f4 = 12344.00999787; int f5 =(int)f4;//int f5 = f4;大范围转小范围,不强制转换会报错。 System.out.println("f5=" +f5); } }
12.转义序列符
在Java中
\n表示换一行
\t表示水平制表符
\"表示输出一个"
\'表示输出一个'
\\表示输出一个\
\u0000表示输出一个空格
注意:转义序列符必须编写在双引号中