[豪の学习笔记] JavaReStudy#02
Published on 2025-02-24 13:17 in 分类: [豪の学习笔记] with 舒旭豪 SchwarzShu

[豪の学习笔记] JavaReStudy#02

变量

1 - 注意事项

变量表示内存中的一个存储区域[不同的变量,类型不同,占用的空间大小不同]

该区域有自己的名称[变量名]和类型[数据类型]

变量必须先声明,后使用

该区域的数据/值可以在同一类型范围内不断变化

变量在同一个作用域内不能重名

变量 = 变量名 + 值 + 数据类型

2 - 程序中+号的使用

当左右两边都是数值型时,则做加法运算

当左右两边有一方为字符串,则做拼接运算

运算顺序,是从左到右

System.out.println(100 + 98);    //198

System.out.println("100"+ 98);    //10098

System.out.println(100 + 3 + "hello");    //103hello

System.out.printin("hello"+ 100 +3);    //hello1003

3 - 数据类型

基本数据类型

①数值型

Ⅰ.整数类型,存放整数(byte[1],short[2],int[4],long[8])

Ⅱ.浮点(小数)类型(float[4],double[8])

②字符型

char[2],存放单个字符

③布尔型

boolean[1],存放true,false

引用数据类型

①类class

②接口interface

③数组[]

4 - 整数类型

类型 占用存储空间 范围
byte 1字节 -128~127
short 2字节 -32768~32767
int 4字节 -231~231-1
long 8字节 -263~263-1

Java各整数类型有固定的范围和字段长度,不受具体OS[操作系统]的影响,以保证java程序的可移植性

Java的整型常量(具体值)默认为int型,声明long型常量须后加'l'或'L'

Java程序中变量常声明为int型,除非不足以表示大数,才使用long

bit是计算机中的最小存储单位,是计算机中的基本存储单元,1byte = 8 bit

5 - 浮点类型

类型 占用存储空间 范围
float 4字节 -3.403E38~3.403E38
double 8字节 -1.798E308~1.798E308

浮点数 = 符号位 + 指数位 + 尾数位

尾数部分可能丢失,造成精度损失(小数都是近似值)

与整数类型类似,Java 浮点类型也有固定的范围和字段长度,不受具体OS的影响

Java 的浮点型常量(具体值)默认为double型,声明float型常量,须后加'f’或'F',通常情况下,应该使用double型,因为它比float型更精确

浮点型常量有两种表示形式

十进制数形式:5.12    512.0f    .512(必须有小数点)

科学计数法形式:5.12e2[5.12*10的2次方]    5.12E-2[5.12/10的2次方]

6 - Java API 文档

APl(Application Programming Interface,应用程序编程接口)是 Java 提供的基本编程接口(Java提供的类还有相关的方法),中文在线文档:https://www.matools.com

Java语言提供了大量的基础类,因此 Oracle公司也为这些基础类提供了相应的API文档,用于告诉开发者如何使用这些类,以及这些类里包含的方法

7 - 字符类型

字符类型可以表示单个字符,字符类型是char,char是两个字节(可以存放汉字),多个字符我们用字符串String

字符常量是用单引号(‘ ’)括起来的单个字符。例如:char c1 = 'a';char c2 = '中';char c3 = '9'

Java中还允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量。例如:char c3 = ‘\n’;

在Java中,char的本质是一个整数,在输出时,是unicode码对应的字符。可以直接给char赋一个整数,然后输出时,会按照对应的unicode 字符输出[97 --> a]

char类型是可以进行运算的,相当于一个整数,因为它都对应有Unicode码

8 - 字符编码表

①ASCII:一个字节表示,一共128个字符,实际上一个字节可以表示256个字符,只用了128个

②Unicode:固定大小的编码,使用两个字节表示字符,字母和汉字都是占用两个字节,有点浪费空间

③utf-8:大小可变的编码,字母使用一个字节,汉字使用三个字节

④gbk:可以表示汉字,而且范围广,字母使用一个字节,汉字使用两个字节

⑤gb2312:可以表示汉字,gb2312 < gbk

⑥big5码:繁体中文,台湾,香港

ASCII

上个世纪60年代美国制定,ASCII码一共规定了128个字符的编码,只占用了一个字节的后面7位,最前面的1位统一规定为0

一个字节可以表示256个字符,但是ASCII码只用了128个字符

缺点:不能表示所有字符

Unicode

将世界上所有的符号都纳入其中,每一个符号都给予一个独一无二的编码,使用Unicode没有乱码的情况

2^16 = 65536,所以最多编码是65536个字符

编码0~127的字符是与ASCII的编码一致的,如 ‘a’ 在ASCII码是0x61,在Unicode码是0x0061,都对应97

缺点:一个英文字母和一个汉字都占用2个字节,对于存储空间来说是浪费

UTF-8

是在互联网上使用最广的一种Unicode的实现方式(改进)

是一种变长的编码方式,它可以使用1-6个字节表示一个符号,根据不同的符号而变化字节长度

使用大小可变的编码,字母占1个字节,汉字占3个字节

9 - 布尔类型

布尔类型也叫boolean类型

数据只允许取值true和false,无null,占用一个字节

10 - 基本数据类型转换

当java程序在进行赋值或运算时,精度小的类型自动转换为精度大的数据类型

char < int < long < float < double

byte < short < int < long < float < double

有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算

当我们把精度(容量)大的数据类型赋值给精度(容量)小的数据类型时,就会报错,反之就会进行自动类型转换

(byte,short)和 char之间不会相互自动转换

11 - 强制类型转换

自动类型转换的逆过程,将容量大的数据类型转换成容量小的数据类型,使用时要加上强制转换符(),但可能造成精度降低或溢出

    int num = (int)1.9;
    System.out.println(num);

当进行数据的大小从大到小,就需要使用到强制转换

强转符号只针对最近的操作数有效,往往会使用小括号提升优先级

char类型可以保存int的常量值,但不能保存int的变量值,需要强转

byte,short,char类型在进行运算时,当作int类型处理

12 - 基本数据类型和String类型的转换

基本类型转String类型

语法:基本类型的值 + “ ”

    int n1 = 100;
    float n2 = 1.1f;
    double n3 = 3.4;
    boolean b1 = true;
    String str1 = n1 + "";
    String str2 = n2 + "";
    String str3 = n3 + "";
    String str4 = b1 + "";

String类型转基本数据类型

通过基本类型的包装类调用parseXX方法即可

    Integer.parseInt("123");
    Double.parseDouble("123.1");
    Float.parseFloat("123.45");
    Short.parseShort("12");
    Long.parseLong("12345");
    Boolean.parseBoolean("true");
    Byte.parseByte("12");

在将String类型转成基本数据类型时,要确保String类型能够转成有效的数据,比如我们可以把"123"转成一个整数,但是不能把"hello"转成一个整数

如果格式不正确,就会抛出异常,程序就会终止

posted @   SchwarzShu  阅读(0)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示