write in front
大家好,我是Aileen.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流.
本文由Aileen_0v0 原创 CSDN首发 如需转载还请通知⚠️
个人主页:Aileen_0v0—CSDN博客
欢迎各位→点赞 + 收藏⭐️ + 留言
系列专栏:Aileen_0v0的JAVA学习系列专栏——CSDN博客
我的格言:"没有罗马,那就自己创造罗马~"
回顾
上次学了 Java 中的数据类型long - Long 和 double - Double float - Float.如果有遗忘或者是感兴趣的小伙伴可以点击链接http://t.csdnimg.cn/zIftT进行跳转阅读.今天我们来学习 其它数据类型
目录
回顾
Unicode和ASCII的介绍和区别
JAVA中 字符常量 和 字符串常量的区别和用法
字符数据类型-char-Character
字节数据类型-byte-Byte
短整型数据类型-short-Short
布尔类型数据类型 -boolean-Boolean
JAVA中的 转义字符 及 作用
Summary
Unicode和ASCII都是字符编码标准,它们的区别在于编码范围和长度。
ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是一种七位编码,用于表示英文字母、数字和一些特殊字符,共计128个字符。ASCII取值范围为0~127。
Unicode是一种多字节字符集,它的范围更广泛,可以表示世界上所有的字符,包括各个语言的文字、符号以及图形符号等,共计136,755个字符。Unicode可以使用UTF-8、UTF-16等不同的编码方式表示,其中UTF-8是一种可变长编码,可以根据不同的字符来使用不同的字节数表示,为了支持更多的字符,UTF-8的编码长度可以达到4字节。
因此,ASCII适用于英文字符和一些特殊字符的编码,而Unicode则适用于全球范围内所有语言文字和符号的编码。
也就是说Unicode 包含了 ASCII 和 其它语言编码 适用范围更广.
JAVA中字符常量是一个单独的字符,用单引号(')表示
而字符串常量则是多个字符构成的字符串,用双引号(")表示。
使用条件和规则如下:
1.字符常量必须用单引号(')括起来,只能包含一个字符,
字符串常量必须用双引号(")括起来,可以包含多个字符。
2.字符常量在内存中只占用一个字节,
字符串常量占用多个字节,具体大小取决于字符串中字符的个数。
3.字符常量可以直接赋值给字符变量,例如:char c = 'a';
字符串常量必须用String类来定义,例如:String str = "Hello World";
4.字符常量可以与其他字符常量或者数值直接进行运算,例如:char c1 = 'a' + 1;
字符串常量只能与其他字符串常量进行运算(字符串拼接),例如:String str1 = "Hello" + " World";
5.访问字符串中的某个字符可以使用charAt()方法,例如:char c = str.charAt(0);
访问字符常量不需要使用特殊的方法。
总的来说,字符常量和字符串常量都是JAVA中表示字符的方式,但是它们在定义、使用、存储等方面有很大的区别。需要根据具体的需求来选择合适的类型。
package TestDemo;
public class TestDemo {
//字符数据类型 char 2字节 取值范围: 0 - 65535
public static void main(String[] args) {
char ch = 'a';
System.out.println(ch);
char ch2 = '猪';
System.out.println(ch2);
}
}
控制台运行结果:
注意:char是字符类型,所以没有负数.
package TestDemo;
public class TestDemo {
//字节Byte 1字节 取值范围: -128 - 127
public static void main(String[] args) {
byte b = 12;
byte c = 21;
System.out.println(b+" "+ c);
System.out.println(Byte.MAX_VALUE);//最大值127 2^7-1
System.out.println(Byte.MIN_VALUE);//最小值-128 2^8
System.out.println(Byte.MAX_VALUE + 1);//默认以整型进行打印
}
}
控制台运行结果:
从运行结果我们能看到System.out.println(Byte.MAX_VALUE + 1)输出结果为 128,这是为什么呢?
还记得我们之前的int 类型,当时我们将它的最大值加1就变成了它的最小值
但字符类型好像并非如此!
在Java中,当一个byte类型的变量与其他类型进行运算时,
会首先自动转换为int类型(取值范围是 -2^31 - 2^31 - 1),然后进行运算。
所以,当执行Byte.MAX_VALUE + 1
时,byte类型的最大值127会被提升为int类型,再与1相加,结果为128。最终输出结果为128。
package TestDemo;
public class TestDemo {
//字节Byte 1字节 取值范围: -128 - 127
public static void main(String[] args) {
System.out.println(Byte.MAX_VALUE);//最大值127 2^7-1
System.out.println(Byte.MIN_VALUE);//最小值-128 2^8
System.out.println(Byte.MAX_VALUE + 1);//默认以整型进行打印
//System.out.println(Integer.MAX_VALUE);
byte d = 127; // 2147483647
int i = 2147483648;
}
}
控制台运行结果:
当我们给字节类型数据赋值 通过控制台输出结果输出可知
每一种数据类型 在给它赋值的时候 一定不能超过他的范围~
package TestDemo;
public class TestDemo {
/**
* 短整型 : short 2字节 取值范围: -32768 - 32767
* @param args
*/
public static void main(String[] args) {
short sh =12;
System.out.println(Short.MAX_VALUE);
System.out.println(Short.MIN_VALUE);
}
}
控制台运行结果:
package TestDemo;
public class TestDemo {
public static void main(String[] args) {
/**
* 布尔类型:
* 1.在JAVA中 布尔类型 没有明确的大小
* 2.在JAVA中 布尔类型 只有两个取值 true 和 false
* 3.在JAVA中 布尔类型 没有 所谓的 0是假 非0是真
* 真 只有 true 假 只有 false
* 4. Boolean
*/
boolean flg =true;
System.out.println(flg);
}
}
控制台运行结果:
转义字符 | 解释 |
\n | 换行 |
\t | 水平制表符 |
\' | 单引号 |
\" | 双引号 |
\\ | 反斜杠 |