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 = "中国";
接口:
数组:
类型转换

强制转换 :(类型) 数值

高-->低 需进行强转低-->高 自动转换

image-20250813115211511

强转会出现内存溢出的安全问题

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 根据文档注释生成中文文档

posted @ 2025-08-13 20:57  QZ不是crazy  阅读(8)  评论(0)    收藏  举报