Java-SE Day1 基础
Java-SE Day1 基础
注释
书写注释是一个非常好的习惯
注释在代码执行时不会被执行,其作用在于:便于人类阅读
单行注释
// 单行注释,可注释单行代码(文字)
public class Hello {
public static void main(String[] args) {
// 输出Hello world
System.out.println("Hello World");
}
}
多行注释
/*
多行注释
可注释多行代码(文字)
*/
public class Hello {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
文档注释
/**
*@Author QZ_not_crazy
*/
public class Hello {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
文档注释用于表示作者,作用等等用到的情况较少*
大多数情况只用到单行注释和多行注释即可
标识符和关键字
Java 所有的组成部分都需要名字,类名、变量名以及方法名都被称为标识符。
不能使用关键字作为变量名或方法名
标识符大小写敏感
可以使用中文命名(但不符合规范)
关键字即在Java 创建初级被使用的拥有特殊含义的单词
Java关键字:
标识符可被定义,关键字不可定义
数据类型
强类型语言:所有变量必须先定义类型后使用,Java 属于强类型语言
弱类型: 如Python 变量可直接定义,无需定义类型
Java 数据类型分为两大类:基本类型(primitive type)、引用类型(reference type)
基本数据类型
整数类型:
//byte(1字节) : -128-127
byte num1 = 20;
//short(2字节) : -32768-32767
short num2 = 30;
//int(4字节) :-2147833648-2147483647 (最常用)
int num3 = 40;
//long(8字节):-9223372036854775808-9223372036854775807
long num4 = 50L;
// L用于与int类型进行区分,表示为long类型
浮点类型(接近但不等于,浮点数不精准):
//float(4字节)
float num5 = 30.1F;
// F用于与double 进行区分
//double (8字节)
double num6= 20.1;
字符类型(所有字符本质还是数字,Acc):
//char(2字节)
char name = '中';
boolean 类型:
//boolean类型(1位):只有true和false
boolen flag = true;
boolen flag2=false;
引用数据类型
类:
//字符串String
String name = "中国";
接口:
数组:
类型转换
强制转换 :(类型) 数值
高-->低 需进行强转,低-->高 自动转换

强转会出现内存溢出的安全问题
int i = 128;
byte b = (byte)i;
System.out.print(b); // 结果为-127
int money = 10_0000_0000;
int years = 20;
int total = money*years;
long total2 = money*years; // 转long类型前,是两个int 类型进行计算
System.out.println(total); // 结果为-1474836480
System.out.println(total2); // 结果为-1474836480
System.out.println(money*(long)years); //结果为20000000000
扩展
进制的表示:
int i = 10; // 十进制
int i2 = 010; // 八进制 0
int i3 = 0x10 // 十六进制 0x
浮点数不精准:
float f1 = 0.2f;
float f2 = 0.2f;
System.out.print(f1==f2); //返回false
类型间可强转:
char c1='a';
int c2=97;
System.out.print((int)c1); // 返回97
System.out.print((char)c2) // 返回a(底层为ASCII 码表)
变量、常量、作用域
强类型语言变量定义前需定义变量类型
变量:顾名思义,可变化的量,存储于内存空间中,空间中的值可进行变化
常量 : 顾名思义,无法变化的量,一般以大写字母表示,定义关键字final
变量常量的命名规范需注意,这里就不赘述规范了
局部变量:方法中可随意调用的变量,必须声明初始值
实例变量:属于对象,不进行初始化,为这个类型的默认值
除了基本类型,其余的默认值都是null
类变量:类中可随意调用的变量,定义关键字static
public class Demo{
static int num1 = 8; // 定义类变量
int age // 定义实例变量
public static void main(String[] args){
//局部变量
final PI = 3.14; // 定义局部常量
int num2 = 9; // 定义局部变量
System.out.print(num2) //使用局部变量
//实例变量
Demo demo = new Demo(); // 实例化对象
System.out.print(Demo.age); // 使用实例对象
//类变量
System.out.print(age); // 使用类变量,int 默认值为0
}
}
运算符
算数运算符:+、-、*、/、%、++、--
赋值运算符:=
关系运算符:>、<、>=、<=、==、!=、instanceof
逻辑运算符:&&、|| 、!
位运算符:&、|、^、~、>>、<<、>>> (了解即可)
条件运算符:?、:
扩展赋值运算符:+=、-=、*=、/=
这里排除掉一眼知道运算符作用和还未学习到的,演示一下
//逻辑运算符:&&、||、! 常用于if 判断中
if (true&&true){} // and,两个条件同时成立了为true
if(true||false){} // or ,两个条件成立一个为true
if(!false){} // 取反,false 则变为true
//短路运算,这里需了解 && 若第一个条件不成立,第二个条件就不会执行
int c=5;
boolean d=(c<4)&&(c++<4); // 按道理,c<4 后为false,会再判断c++<4,c就会自增
System.out.println(d); // 结果为false
System.out.println(c); // c=5,第二个条件并未执行
//算数运算符(一元运算符):++、--
int num = 1
int num1 = num++; // 表示将num的值赋值于num1,num再自增1
// int num = num+1; // 自动执行的操作
int num = 1
// int num = num+1; // 自动执行的操作
int num1 = ++num; // 表示num 先自增1,再赋予num1,两者的区别在于是否先自增
//-- 与之同理,这里不做演示
不同类型的值进行算术运算,最终类型向上合并
public class Demo{
public static void main(String[] args){
long a = 123456;
int b = 123;
short c = 10;
byte d = 8;
System.out.print(a+b+c+d) // 最终类型为long
System.out.print(b+c+d) // 最终类型为int
System.out.print(c+d) // 最终类型为int(因为byte、short无上下之分)
}
}
三元运算符
x ? y : z // 如果x==true,结果为y,否则结果为z
int score = 80;
// 80<60,结果为false,走到z也就是及格的返回
String type = score < 60 ? "不及格":"及格" // 结果为及格
包机制
包的本质就是文件夹
一般利用公司域名倒置作为包名,如 xin.whoami.www
主要是为了区别类名的命名空间(防止命名相同)
xin
whoami
www
Demo1
Demo2
packet xin.whoami.www // 表示当前类处于的包下
import xin.whoami.www.* // 导入xin.whoami.www 下的所有类
最后是JavaDoc 生成文档,因为并没有和安全挂钩,只是根据文档注释生成文档,我这里就略过了
javadoc -encoding UTF-8 -charset UTF-8 Doc.jar 根据文档注释生成中文文档

浙公网安备 33010602011771号