java基础系列01--基础类型

2019-01-13  本文已影响5人  addin_gao

java 基础

1 变量

变量的定义格式:数据类型 变量名 = 变量值;

int a = 5;

2数据类型

Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间

Java中数据类型的分类:

Java中数据类型的分类:

基本数据类型分类(4类8种)

整数型
    * byte 占一个字节  -128到127
    * short 占两个字  -2^15~2^15-1
    * int 占四个字节 -2^31~2^31-1
    * long 占八个字节 -2^63~2^63-1

浮点型
    * float 占四个字节 -3.403E38~3.403E38  单精度
    * double 占八个字节-1.798E308~1.798E308 双精度

字符型
    * char 占两个字节 0~65535

布尔型
    * boolean 理论上是占八分之一个字节,因为一个开关就可以决定是true和false了,但是java中boolean类型没有明确指定他的大小     

定义不同类型的值并且输出,注意float类型,和long类型

byte a = 'a';  // 1个字节     //print ==> 97
short b = 12;  // 2个字节    //print ==> 12
int  c = 12;   // 4个字节    //print ==> 12
long d = 12L;  // 8个字节  长整形加L表示   //print ==> 12
float e = 12.3F; // 4个字节,浮点数默认为double 类型,必须加f  //print ==> 12.3
double f = 12.3; // 8个字节    //print ==> 12.3
char g = 'a';   // 2个字节  //print ==> a

基本类型默认初始化值:

数据类型转换之隐式转换

取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算

int a = 5;
byte b = 4;
a = a + b; // --> a == 9
b = a + b; // 编译报错,cannot convert from int to byte

数据类型转换之强制转换

如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同

int a = 126;
byte b = 4; 
b = (byte)(a+b); // ---> -126
byte b2 = (byte)300;  // ---> 44

变量相加和常量相加的区别

byte a = 10;
byte b = 11;
byte c = a+b; // cannot convert from int to byte
// byte与byte(或者short,char)进行运算的时候都会提升为int,2个int类型的值相加结果也是int,直接赋值给byte类型的c,会出错,其次 a,b是两个变量,变量存储的值是变化的,在编译的时候无法判断具体的值,所以不会报错,但是运行的时候就可能会超出byte的取值

byte d = 3+4 // java编译器有常量优化机制,会先把3+4 =7,和 byte d = 7效果一样

总结:进行混合运算的时候,byte,short,char不会相互转换,都会自动类型提升为int类型,其他类型进行混合运算的是小的数据类型提升为大的 byte,short,char   -- int -- long -- float -- double

float表示的数据范围比long的范围要大

字符char和字符串参与运算

System.out.println("hello"+'a'+1);  // --> helloa1
System.out.println('a'+1+"hello");  // --> 98hello

Java语言中的字符char可以存储一个中文汉字吗? 可以。因为Java语言采用的是Unicode编码。Unicode编码中的每个字符占用两个字节。中文也是占的两个字节

3运算符

自增(++)和自减(--)以及 +=,-= ...

byte b = 1;
b++; // --> b = 2 自增和自减会有个强制类型转换 等价于 b = (byte)(b+1)
b = b + 1;  --> 报错 cannot convert from int to byte
b += 1;  //  --> b = 3  这种方式也会有个默认强转

逻辑运算符

&, |, ^, !, &&, || :短路与和短路或

位运算符

&,|,^,~ ,>>,>>>,<<

4方法

方法重载:

在同一个类中,方法名相同,参数列表不同。与返回值类型无关。

5数组

数组定义格式: 数据类型[] 数组名 = new 数据类型[数组的长度] int[] arr = new int[4]

一维数组初始化:

int[] arr = new int[]{1,2,3,4}; // 长度为4,这个也不能拆分,赋值定义得在同一行

int[] arr ={1,2,3,4} // 上面的简写形式,常用的

不允许动静结合:int[] arr = new int[4]{1,2,3,4}; //报错

二维数组初始化:

int[][] arr = new int[3][2];

int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};

数组当作参数传递:

传递的是数组的地址值:public static void Change(int[] arr){};Change(arrs)

冒泡排序:

选择排序:

二分查找法: 前提是排好序的

6 基本类型包装类:

将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据

基本类型和包装类的对应:

基本类型 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

7 Eclipse快捷键操作

类实现了一个接口,生成接口中方法的快捷键:   Ctrl+1

新建一个 java文件:   Ctrl + n

查找本文件中的类或者方法:  Ctrl + o

生成资源面板 :       Alt + Shift + s

全局搜索类:         Ctrl + Shift + t

导入代码中需要包: Ctrl + Shift + o

上一篇 下一篇

猜你喜欢

热点阅读