标识符和关键字-数据类型20241219

标识符和关键字 2024/12/19

关键字:

abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while

48个关键字速览

标识符:Java所有的组成部分都需要名字。类名变量名以及方法名都被称为标识符。

标识符注意点

  1. 所有的标识符都应该以字母(),美元符号($)、或者下划线(_)开始
  2. 首字符之后可以是字母(A:Z或者a-z),美元符($)、下划线(_)或数字的任何字符组合
  3. 不能使用关键字作为变量名或方法名。
  4. 标识符是大小写敏感的
  5. 合法标识符举例:age、$salary、__value、_1_value
  6. 非法标识符举例:123abc、-salary、#abc
  7. 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low

数据类型 2024/12/19

原文链接

Java是一种强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用

弱类型语言:要求变量的不需要严格符合规定,所有变量不必须先定义后才能使用

Java的数据类型分为两大类基本类型:

基本类型(primitive type) 六种数字类型四个整数型两个浮点型),一种字符类型一种布尔型

引用类型(reference type) 类、接口、数组

数据类型:

Java语言提供了8种基本数据类型。六种数字类型四个整数型两个浮点型),一种字符类型还有一种布尔型

1.整数类型:byte、short、int、long
  • java 的整型常量默认为 int型,声明 long 型常量须后加 l**L**
  • java 程序中定义整形的变量通常声明为 int 型,除非不足以表示较大的数 ,才使用 long
  • bit:计算机中的最小存储单位。
  • byte:计算机中处理数据的基本单位。
类型 占用存储空间 表数范围
byte 1字节=8bit位 -128~127
short 2字节 -32768-32767
int 4字节 -2147483648-2147483647 (正负27亿)
long 8字节 -9223372036854775808-9223372036854775807 (大概正负900万万亿)

2.浮点类型:float、double

类型 占用存储空间 表数范围
float(单精度浮点型) 4字节 1.4E-45~3.4028235E38(e+38 表示乘以10的38次方)精确到小数点后6-7位
double(双精度浮点型) 8字节 4.9E-324~1.7976931348623157E308(同上)精确到小数点后15-16位

浮点型,表示带小数点的数值

float:单精度,尾数可以精确到 7 位有效数字。很多情况下,精度很难满足需求。
double:双精度,精度是 float 的两倍。通常采用此类型。但是double类型同样不能表示精确的值,如货币(使用 Bigdecimal类型);
因此尽量避免使用浮点数比较!!!!
Java 的浮点型常量默认为 double 型,声明 float 型常量,须后加 f 或 F
float 表示数值的范围比 long 还大
通常,定义浮点型变量时,使用 double 型
浮点型的常量,默认类型为:double

关于浮点数最小正常值和最小非零正数的区别

public static final float MAX_VALUE = 0x1.fffffeP+127f; // 3.4028235e+38f

	public static final float MAX_VALUE = 0x1.fffffeP+127f; // 3.4028235e+38f
    public static final float MIN_NORMAL = 0x1.0p-126f; // 1.17549435E-38f  //最小正常值
    public static final float MIN_VALUE = 0x0.000002P-126f; // 1.4e-45f    //最小非零正数
3.字符类型:char

char 型数据用来表示通常意义上字符 (1字符=2 字节)。Java 中的所有字符都使用 Unicode 编码,故一个字符可以存储一个字母一个汉字,或其他书面语的一个字符

char 类型是一个单一的 16 位 Unicode 字符;
最小值是 \u0000(十进制等效值为 0);
最大值是 \uffff(即为 65535);
char 数据类型可以储存任何字符;例子:char letter = 'A';

声明一个字符:

字符常量是用单引号"括起来的单个字符。 例如: char c1 = 'a' ;char c= '中'。

char c1='a';
char c2='\u0061';//

转义字符:Java 中还允许使用转义字符 \ 来将其后的字符转变为特殊字符型常量。例如:char c3 = '\n';'\n' 表示换行符
直接使用 Unicode 值来表示字符型常量:'\uXXXX' 。其中, XXXX 代表一个十六进制整数。如:\u000a 表示 \n 。

char 类型是可以进行运算的,因为它都对应有 Unicode 码,如:

char c1 = '\n';
System.out.println("hello" + c1);  //连接运算

char c2 = 'A';
System.out.println(4 + c2);  // 69 A的Unicode码是65  

Java语言支持一些特殊的转义字符序列

符号 字符含义
\n 换行 (0x0a)
\r 回车 (0x0d)
\f 换页符(0x0c)
\b 退格 (0x08)
\0 空字符 (0x0)
\s 空格 (0x20)
\t 制表符
" 双引号
单引号
\ 反斜杠
\ddd 八进制字符 (ddd)
\uxxxx 16进制Unicode字符 (xxxx)
char data_7='\u0061';//是一个单一的 16 位 Unicode 字符 默认值\u0000  可以计算、可以做转义字符、本例对应的97 也就是 a
char data_8='\n';//data_8 被初始化为转义字符 \n,它表示一个 换行符(Line Feed),即在输出中会换行。
System.out.println("helloworld!"+data_8); //这行代码将字符串 "helloworld!" 和字符 data_8(即换行符 \n)连接起来进行输出。
System.out.println(data_7);//这行代码直接输出 data_7,它包含字符 'a'
System.out.println(data_7+1);//因为在 Java 中,字符和整数之间的转换是隐式发生的。当你对 char 类型执行加法(加整数)操作时,它会首先把 char 当作整数来计算。
System.out.println((char)(data_7+1));//要想输出b 可以将98强转到char
helloworld!
    
a
98

结果解释:

data_7 被初始化为 Unicode 字符 \u0061,它代表的是字符 'a'。Unicode 编码 \u0061 对应的字符是小写字母 'a'

  • \u 是 Unicode 转义字符的标志,后面跟随 4 位十六进制数字,表示该字符的 Unicode 编码。 \u0000~\uffff

boolean类型(布尔类型)boolean 数据类型表示一位的信息;

  • 只有两个取值:truefalse
  • 这种类型只作为一种标志 flag 来记录 true/false 情况;
  • 默认值是 false
  • 例子:boolean flag = trueif(1==1)

默认值

数据类型 默认值
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char ‘u0000’
String (or any object) (引用类型) null
boolean false

Java希望使用一切皆为对象的理念来统一语言设计,但基本类型确实有很多优点和使用场景,鱼和熊掌我就要兼得之!所以它为每一个基本类型都提供了相应的包装类,封装了很多实用的方法,最重要的是,提供了自动装箱和自动拆箱的语法糖,让开发者可以无感知的在包装类型和基础类型之间来回切换。

  • boolean --> Boolean
  • char --> Character
  • byte --> Byte
  • short --> Short
  • int --> Integer
  • long --> Long
  • float --> Float
  • double --> Double
  • char[] --> String(字符串)

参考链接

posted @ 2024-12-20 10:14  panghuhu~  阅读(77)  评论(0)    收藏  举报