系列文章目录
目录
第一章 Java学习之旅启航~【超详细】
第二章 Java学习之旅——数据类型与变量【超详细】
一、冯诺依曼体系
冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。这里我们就是做一个简单的了解。
冯诺依曼是我们的祖师爷,计算机之父。
约翰冯·诺依曼(John von Neumann,1903年12月28日-1957年2月8日),美籍匈牙利数学家、计算机科学家、物理学家,是20世纪最重要的数学家之一。冯·诺依曼是罗兰大学数学博士,是现代计算机、博弈论、核武器和生化武器等领域内的科学全才之一,被后人称为“现代计算机之父”、“博弈论之父”。
冯诺依曼真的太优秀了。跨界全才,成就非凡。大家有兴趣的可以自己去网上看看~
二、数据类型与变量
1 .字面常量
常量即程序运行期间、固定不变的量称为常量。
字面常量的分类
1.字符串常量:由""括起来的,比如"12345"、"hello","你好".
2.整型常量:程序中直接写的数字(注意没有小数点),比如:100、1000
3.浮点数常量:程序中直接写的小数,比如:3.14、0.49
4.字符常量:由单引号括起来的单个字符,比如'A'、'1'
5.布尔常量:只有两种true和false
6.空常量:null
注意:字符串、整形、浮点型以及布尔型,在java中都成为数据类型。
2. 数据类型
在java中数据类型主要分为两类:基本数据类型和引用数据类型
基本数据类型中有四类八种:
1.四类:整形、浮点型、字符型以及布尔型
2.八种:
注意:
3.变量
3.1 变量概念
对于那些经常改变的内容,在Java程序中,称为变量,二数据类型就是用来定义不同类型变量的。
3.2 语法格式
数据类型 变量名=初始值;
class HelloWorld {
public static void main(String[] args) {
int a = 10;//可以修改,整形
final int b=20;//不可修改
double c=3.14;//双精度浮点型
char d='A';//字符型
boolean e=true;//布尔型
System.out.println(a);//相当于C语言中的printf,ln这里是换行
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
}
注意:在一行可以定义多个相同类型的变量
int a1=1,a2=2,a3=3;
System.out.println(a1);
System.out.println(a2);
System.out.println(a3);
3.3 整形变量
3.3.1 整形变量
整形变量的使用
public class Test {
public static void main(String[] args) {
//在定义时给初始值
int a=10;
System.out.println(a);
//在定义时不给初始值,但在使用前必须设置初始值
int b;
b=10;
System.out.println(b);
//error,在使用前没有赋值,报错
int c;
System.out.println(c);
c=10;
}
}
int的表示范围:
System.out.println(Integer.MIN_VALUE);
System.out.println(Integer.MAX_VALUE);
输出结果:
我们不需要记具体数值,只要记得我们刚才表格里面的 -2^31~2^31-1即可。
int有4个字节,1字节等于8比特,所以是32个比特位,chu'q
注意事项:
1.int 不论在何种系统下都是4个字节
2.推荐在定义时就给变量赋值,如果没有合适的初始值,可以设置为0
3.在给变量设置初始值时,值不给超过int的表示范围,否则会导致溢出
4.变量在使用前必须要赋值,否则会编译报错
5.int的包装类型为Integer
3.3.2 长整型变量
public class Test {
public static void main(String[] args) {
long c=10L;
System.out.println(c);
System.out.println(Long.MIN_VALUE);
System.out.println(Long.MAX_VALUE);
}
}
3.3.3 短整型
public class Test {
public static void main(String[] args) {
short a=10;
System.out.println(a);
System.out.println(Short.MIN_VALUE);
System.out.println(Short.MAX_VALUE);
}
}
3.4 浮点型变量
3.4.1双精度浮点型
public class Test {
public static void main(String[] args) {
double a=1;
double b=2;
System.out.println(a/b);//输出结果:0.5
System.out.printf("%.2f",a/b);//结果保留两位小数,输出结果0.50
}
}
3.4.2 单精度浮点型
public class Test {
public static void main(String[] args) {
float a=1.0f;//写作1.0F也可以
System.out.println(a);
}
}
3.5 字符型变量
public class Test{
public static void main(String[] args) {
char c1='呵';
char c2=97;//输出结果是a
System.out.println(c1);
System.out.println(c2);
}
}
我们会发现,c1赋值的时候没有报错!汉字是两个字节,这也就是说明,在java中char的字节是两个。
3.6 布尔型变量
布尔类型常用来表示真假。
public class Test{
public static void main(String[] args) {
boolean b=true;
System.out.println(b);
boolean a=false;
System.out.println(a);
}
}
3.7 类型转换
Java 作为一个强类型编程语言, 当不同类型之间的变量相互赋值的时候, 会有教严格的校验。在Java中,当参与运算数据类型不一致时,就会进行类型转换。Java中类型转换主要分为两类:自动类型转换(隐式) 和强制类型转换(显式)。
3.7.1 自动类型转换(隐式)
自动类型转换即:代码不需要经过任何处理,在代码编译时,编译器会自动进行处理。
特点:数据范围小的转为数据范围大的时会自动进行。
public class Test{
public static void main(String[] args) {
int a = 100;
long b = 10L;
b = a; // a和b都是整形,a的范围小,b的范围大,当将a赋值给b时,编译器会自动将a提升为long类型,然后赋值
// a = b; // 编译报错,long的范围比int范围大,会有数据丢失,不安全
float f = 3.14F;
double d = 5.12;
d = f; // 编译器会将f转换为double,然后进行赋值
// f = d; // double表示数据范围大,直接将float交给double会有数据丢失,不安全
byte b1 = 100; // 编译通过,100没有超过byte的范围,编译器隐式将100转换为byte
// byte b2 = 257; // 编译失败,257超过了byte的数据范围,有数据丢失
}
}
3.7.2 强制类型转换(显式)
public class HelloWorld{
public static void main(String[] args) {
int a = 100;
long b = 10L;
a = (int)b;
System.out.println(a);//输出结果:10
float f = 3.14F;
double d = 5.12;
f = (float) d;
System.out.println(f);//输出结果:5.12
}
}
boolean flag = true;
a = flag; // 编译失败:类型不兼容
flag = a; // 编译失败:类型不兼容
3.8 整型提升
public class HelloWorld{
public static void main(String[] args) {
int a=10;
long b=20L;
//int c=a+b;编译出错int+long->long+long赋值给int时会丢失数据
long c=a+b;
}
}
2.byte与byte的运算
public class Test{
public static void main(String[] args) {
byte a=10;
byte b=20;
byte c=a+b;//error编译错误
}
}
问题就来了!byte 和 byte 都是相同类型, 但是出现编译报错?
public class Test{
public static void main(String[] args) {
byte a=10;
byte b=20;
byte c=(byte) (a+b);
System.out.println(c);
}
}
4.字符串类型
public class HelloWorld{
public static void main(String[] args) {
String s1 = "hello";
String s2 = "world";
System.out.println(s1);//输出结果:hello
System.out.println(s2);//输出结果:world
System.out.println(s1+s2); // s1+s2表示:将s1和s2进行拼接,输出结果:helloworld
}
}
public class Test{
public static void main(String[] args) {
int num=10;
//方法1
String str1=num+"";
System.out.println(str1);//输出结果10
//方法2
String Str2=String.valueOf(num);
System.out.println(Str2);//输出结果10
}
}
2.String转成int
public class Test{
public static void main(String[] args) {
String str = "100";
int num = Integer.parseInt(str);
System.out.println(str);
}
}
今天的分享就到这里呀~