写代码的四点:
1.明确需求。要做什么?
2.分析思路。要怎么做?(1,2,3……)
3.确定步骤。每一个思路要用到哪些语句、方法和对象。
4.代码实现。用具体的语言代码将思路实现出来。
学习新技术的四点:
1.该技术是什么?
2.该技术有什么特点?(使用需注意的方面)
3.该技术怎么使用?(写Demo)
4.该技术什么时候用?(在Project中的使用场景 )
----------------------早计划,早准备,早完成。-------------------------
Java数据类型概述:
数据类型在计算机语言中,是对内存位置的一个抽象表达式,可以理解为针对内存的一种抽象的表达方式。数据类型是语言的抽象原子概念,可以说是语言中最基本的单元定义,在Java中,本质上将数据类型分为两种:基本数据类型和引用数据类型。
|------数值型: |------整数型:byte short int long
|------浮点型:float double
|------基本数据类型 |------字符型:char
|------布尔型:boolean
数据类型
|------引用数据类型 |------类:class
|------接口:interface
|------数组:array
基本数据类型:(八种:byte、short、int、long、float、double、char、boolean)
1.byte:字节,Java中最小的数据类型,在内存中占8位(bit),即1个字节,
取值范围-128~127之间
(-2的7次方到2的7次方-1) ,默认值0;
2.short:短整型,在内存中占16位,即2个字节,取值范围-32768~32767之间
(-2的15次方到2的15次方-1),默认值0;
3.int:整型,用于存储整数,在内存中占32位,即4个字节,
默认值0;
取值范围
-2147483648~2147483647之间
(-2的31次方到2的31次方-1)
,
4.long:长整型,在内存中占64位,即8个字节,取值范围
-2^63~2^63-1
(-2的63次方到2的63次方-1),
默认值0;
5.float:浮点型,在内存中占32位,即4个字节,用于存储带小数点的数字
(与double的区别在于float类型有效小数点只有6~7位),默认值0.0f;
6.double:双精度浮点型,在内存中占64位,即8个字节,用于存储带小数点的数字,
默认值0.0d;
7.char:字符型,在内存中占16位,即2个字节,用于存储单个字符,
取值范围0~65535,默认值为空;
8.boolean:布尔类型,在内存中占1位,用于判断真或假,
仅有两个值(true、false),默认值为false;
注1:(e+38是乘以10的38次方,e-45是乘以10的负45次方)
注2:double型比float型存储范围更大,精度更高,所以通常的浮点型的数据在不声明的情况下都是double型的。
基本数据类型的封装类:
为各个数据类型提供一些数据的操作方法,可以直接使用。
例如:String转int String a = "21";
int b = Integer.parseInt(a);
int转String int a = 21;
String b = String.valueOf(a);
引用数据类型:(三种:class、interface、array)
1.类(class):
具备某些共同特征的实体的集合,是抽象的概念,
可以自主创建,默认值null;包含Object、void、String类型等;
class A {
String
MSG
=
"hello"
;
public static void
print
(String MSG) {
System.
out
.print(MSG)
;
}
}
2.接口(interface):抽象方法的集合,是抽象的概念,
可以自主创建,默认值null;
interface A {//定义一个接口
public static final
String
MSG
=
"hello"
;
//全局常量
public abstract void
print
()
;
//抽象方法
}
3.数组(array):同一种类型数据的集合,是一个容器,可以自动给数组中的元素从0
开始编号,方便操作。
int[] arr = new int[3]; //一维数组
int
[][] arr1 =
new int
[
3
][
4
]
;
//二维数组(二维数组中有3个一维数组。每一个一维数组中有四个元素。)
基本数据类型和引用数据类型的区别:
主要在于基本数据类型是分配在栈上的,而引用数据类型是分配在堆上的。不论是基本数据类型还是引用数据类型,都会先在栈中分配一块内存,对于基本数据来说,这块内存包含的是基本类型的内容;而对于对象类型来说,这块内存包含的是指向对象的指针,对象被手动弄的分配在堆上。
1.内存方面:
a.基本数据类型在被创建时,会在栈上给其划分一块内存,将数值直接存储在栈上;
b.引用数据类型在被创建时,首先要在栈上给其引用分配一块内存,而对象的具体信
息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址;
2.概念方面:
a.基本数据类型:变量名指向具体的数值;
b.引用数据类型:变量名指向存数据对象的内存地址;
3.使用方面:
a.基本数据类型:使用时需要赋具体值,判断相等使用"=="号;
b.引用数据类型:使用时可以赋null,判断相等使用equals方法;
数据类型转换:(两种:自动转换、强制转换)
1.自动数据类型转换(放大转换):需满足两个条件
a.两种类型要兼容:例如整型和浮点型;
b.目标类型大于源类型:例如int型数据可以自动转换为double型;
2.强制数据类型转换(缩小转换):
在变量前加上括号,在括号中指定要强制转换的类型;
例如:double d = 40.9;
int i = (int)d;
注:强制数据类型转换会损失数值精度,例如double类型变量40.9,
强制转换为int类型后值变成40;