一、基础知识
java程序的最小程序单元是类
[public] class 类名
{
}
java源程序的命名规则
1.源程序必须以.java为后缀
2.源文件中有public类,主文件名必须与public类的类名相同
一个Java源文件只能有一个public类。 但其他类可以有很多个
常用的命令:
win、linux通用
cd:进入指定目录
dir/ls:列出当前目录下所有文件和子目录
mkdir/md: 创建文件夹
win&linux常用特殊目录
. :当前目录
… :上一级目录
/ :根目录
编译Java程序
java -d <目录>源文件
:-d 指定将生成的“字节码文件”放到指定的位置
字节码文件的命令规则为:
1.后缀名为.class
2.主文件名总是与类名相同
3.一个java 源文件中定义了几个类,编译时就会出现几个class文件
运行Java程序
java 类名 :系统到CLASSPATH指定路径下去找
java -cp 目录1;目录2;目录3 类名 :系统到cp选项所指定的系列目录下去找类 。简言之就是-cp选项用于覆盖CLASSPATH环境的值
java要求一个类(不一定要求是public类)必须有main方法才可以运行
main方法是程序的入口
public static void main(String[] args)
jshell工具
从Java 9开始,Java新增了一个工具:jshell,相当于python的交互式工具,相当于Swift的playground。jshell非常实用,他主要帮助开发者快速的测试某些API的功能,并非用于真正编程。
Java程序的注释
Java注释分为3种:
单行注释:
// 注释内容
多行注释:
/*
*/
文档注释:
/**
*/
文档注释:javadoc工具可以提取文档注释生成API文档,只有放在类、成员变量、方法、构造器、内部类之前才有意义。javadoc默认只提取public和protected成员之前的文档注释
生成文档注释:
javadoc -c <目录> 源文件 :-d指定将生成的“API文档”放到指定位置
文档注释中的特殊标记:
@param 参数名 对参数的说明
API文档:为Java类提供使用说明书
day1
变量:
用于‘装’数据,形象来说,变量相当于一个容器
Java是‘强’类型语言,①所有的变量必须先声明后使用②指定类型的变量只能装对应类型的数据
声明变量(定义变量)
类型 变量名 [=初始值];
标识符:
标识符,就是名字,可以 给变量,类,方法……起名字
标识符规则:
由字母(英文,中文,韩文,日文)、数字、下划线_,$组成,但不能数字开头
不能是Java的关键字或保留字(53个)
关键字:Java语言中一些有特殊意义的单词,关键字(48个)的所有字母都是小写
保留字:暂时还没有使用,以后可能会使用的关键字;goto、const两个
直接量:true、false、null
类型:Java类型有基本类型和引用类型
基本类型:整型(byte、short、int、long)、浮点型(float、double)、字符型(char)、boolean型(Boolean)
整型
位(bit):要么是0要么是1
字节(Byte):8个bit
整型只能装整数
byte: 8位(能表示256个数)、取值范围:-128~127
short: 16位(能表示65536个数)、取值范围:-32768~32767
int: 32位(能表示4G个数)、取值范围:-2G~2G-1
long: 64位,取值范围很大,不用记忆
直接给一个整数,默认是int型;如果该整数值较小且直接赋值给byte或short,Java也可以将它当成byte或short处理
如果直接给出一个巨大的整数,Java不会自动把它当成long处理,如果希望Java把该整数当成long处理,需要在整数后面添加L或l(一般用L)后缀
整数一共有4种表示形式:十进制;
八进制(以0开头);
十六进制(以0X或0x开头)
二进制(以0B开头或0b开头)
十六进制:在编程中非常常用,每位十六进制的数,恰好换算成4位二进制数,因此非常方便
浮点型:只能装带小数部分的数
浮点型一共有两个
float: 4个字节(32位),取值更大
double: 8个字节(64位),取值超大
97编程时应该用double,原因在于浮点数都有精度丢失,但float丢失更严重,现在的内存已经很便宜,出于精度考虑,应该使用double
浮点型
直接给出一个浮点值,默认是double型,如果希望把一个浮点数当float处理,必须在数的后面加f或F
浮点数都会有精度丢失,所以浮点数比较时应该用’差值法‘
浮点数有两种表现形式,小数形式、科学计数法形式(数eN=数*10^N;只要用科学计数法一定是浮点数)
浮点值有3个特殊值:(浮点数除以0,得到无穷大)
正无穷大
负无穷大
非数 :浮点数除以0,对负数开方,得到的就是非数(NaN)
非数与任何数都不相等,与他自己都不相等
字符型
只能装单个字符(英文,中文,日文 ),且单个字符要放在单引号里
char: 2个字节(16位置)
字符型3种表现形式:
1.单引号里放普通字符
2.单引号里放特殊的转义字符
3.用字符的Unicode编号,16进制
字符完全可以当成无符号整数使用,使用时就是该字符的编号,取值范围部分0~65535
ASCII码:a:97 ; A:65; 0:48; ‘\r’:13; ’\n’:10
Boolean型
只有两个值:true或false
使用var定义全局变量
很多语言(eg.kotlin、JS等)都支持var定义变量,从Java 10才开始引入的特征
使用var定义全局变量的语法
var 变量名 = 初始值
Java和JavaScript是不同的,每个变量总有固定类型,指定类型的变量就只能装对应类型的值
var不是关键字,var相当于是一个动态类型,var类型将会由Java编译器根据变量所赋的值来推断类型
var 并没有改变Java的本质,var只是一个简化写法。无论是何种类型的局部变量,最终都可以用var来声明
var注意点:
1.var只能在方法中定义变量,不允许在类中定义成员变量
2.var声明变量必须在声明时指定初始值,如果不指明编译器无法推断变量类型
3.var每次只能声明一个变量,不允许在复合声明中使用
使用var声明变量的优缺点
优点:编程更简洁,代码可以更整齐
使用前
String name = ...
int age = ...
CompanyName cn =...
使用后
var name = ...
var age = ...
var cn =...
缺点:使用var声明变量会降低程序的可读性
何时不应该使用var声明变量
声明变量时,为该变量指定一个直观的初始值(5、‘kbc’、2.3),此时就可以使用var声明变量
变量所赋的值是很复杂的方法调用或很复杂的表达值,此时不应该使用var声明,eg. var a = def(abc().xyz());
变量作用域很大的时候 (方法很长),var变量影响很远,此时也不建议使用var
随机验证码
生成6位随机小写字母字符:
for (int i = 0;i