跳到主要内容

1.1-数据类型

Create by fall on 10 Apr 2023 Recently revised in 11 Apr 2023

Java

JVM(java visual machine):Java 虚拟机,通过虚拟机将 java 集成到各个系统上,并保证运行结果的一致。

JDK(java development kit):Java 开发包,集成开发所需内容,数据格式之类

JRE(java runtime environment):Java 运行环境,

三者之间的关系:

JRE = JVM + Java 的核心类库 [类]

JDK = JRE + java 的开发工具 [java,javac,javadoc,javap]

运行

javac 编译 java 文件后,生成 .class 文件,java 虚拟机可以执行该文件

一个源文件中最多只能有一个 public 类,也就是说,只能暴露一次。其它类的个数不限。另外该文件必须以 public 类进行命名。

public class Hello {
//编写一个 main 方法
public static void main(String[] args) {
System.out.println("fall");
}
}

后端工作流程:

  • 需求,工作要求
  • 能否解决问题(已有和未知技术)
  • 学习技术(粗略)
  • 快速完成项目内容
  • 研究技术细节

数据类型

分为两类,基本数据类型和引用数据类型

基本数据类型

二进制类型:byte(8)

整数类型:short(16),int(32),long(64)

浮点类型:float(32),double(64)

字符类型:char

后面的数字表示占多少位(Bit),除以 8 可以换算成字节(Byte)

public class FallStudy{
public static void main(String[] args){
int age = 30;
long human = 7000000000l; // 整型常量默认为 int 型,声明 long 型常量须后加 "l" 或 "L"
float score = 62.5f; // 浮点类型默认为 double 型,声明 float 型常量须后加 "f" 或 "F"
double PI = 3.141592653589793;
char gender = '男';
String slogan = "long live the king";
System.out.println("我是地球"+human+"人中的一个"+age+"岁的中年"+gender+"性");
System.out.println("月底绩效给了我"+score+"分");
System.out.println("我的脑袋像"+PI+"一样,陷入无止境的思考,然后喊出:"+slogan);
}
}

字符类型

public class FallStudy{
public static void main(String[] args){
char char1 = 97;
System.out.println(char1);// 输出 a,以 ASCII 码的形式指定字符串,也可以指定中文字符
char char2 = 'a';
System.out.println((int)char2); // 以 int 类型输出 char2
System.out.println(char1+10);
// 由此可见,char 类型在计算的时候是按照数字类型进行计算的,输出是按照单个字符串输出的
}
}

ASCII 码表示 128 个字符,在此基础上,UniCode 兼容使用 ASCII 码,但所有英文和中文都占用两个字节。

UTF-8:可以使用 1-6 个字节表示一个符号,不同的符号可以改变字节长度,字母占一个字节,汉字占三个字节。

布尔类型

只用来表示 truefalse

public class FallStudy{
public static void main(String[] args){
boolean isPass = true;
if(isPass == true) {
System.out.println("通过图灵测试,恭喜");
}
}
}

自动类型转换

精度小的类型计算时,如果值不够,java 会自动转换为精度大的类型。

  • char->int->long->float->double
  • byte->short->int->float->double

右侧类型可以赋值左侧数据,反之不行。

public class FallStudy{
public static void main(String[] args){
char char1 = 'p';
double dudu = char1;
// byte、short、char 三者可以计算,但是不可以互相赋值,最终都会转换为 int
byte b1 = 2;
short s1 = 1;
char ch1 = 'abb';
ch1.charAt(0); // a
int i1 = b1 + s1 +ch1;//对, b2 + s1 => int
System.out.println(new String(pp));
}
}

强制类型转换

使用括号的形式可以对类型进行强制转换,可能导致精度降低

public class FallStudy{
public static void main(String[] args){
//int x = (int)10*3.5+6*1.5; // 只能应用于后面的单个操作符
int x = (int)(10*3.5+6*1.5);
short shuai = 66;
// shuai = (short)shuai - (short)(6); // 抛错,哪怕两个 short 类型进行加减
shuai = (short)(shuai - 6); // 计算后更改类型
}
}

进制

public class BinaryTest(){
public static void main(String[] args){
int n1 = 0b10111; // 八进制
int n2 = 0604; // 八进制
int n3 = 0x6acd1; // 十六进制
}
}

数据对象

IntegerDoubleFloatLongByteBooleanShort

对象上都有对应的解析方法,用于解析为当前类型:Integer.parseInt()Double.parseDouble

引用类型

参考文章

作者文章名称
韩顺平Java零基础学Java【完整笔记】