JAVA-1
数据类型:
- 基本数据类型
- 整型 byte(1字节,8个bit,都是敏感单元位) short int long
- 浮点型 float double
- 字符型char
- 布尔型 boolean 1bit true false
- 引用数据类型
- 数组
- 类class(抽象类abstract class)
- 接口interface
- 枚举enum
- 注解@interface
量
常量
- 程序在运行过程中不能再次发生改变的值
- 作用
- 便于程序计算,直接采用
- 代表一个含义
变量
- 在程序执行过程中可以进行改变的量,变量是一个内存空间,变量空间在创键时候,必须指定数据类型,变量空间名字,变量空间里面只能存储一个内容,变量空间内容可以改变
- 变量空间创建后没有默认的内容,空的变量空间不能拿来使用,编译错误
- 计算机底层对变量赋值的执行:
- 硬盘上创建java文件,文件中内容是我们编写的源代码,向计算机里面发送指令
- 将java文件进行编译,形成class(默认执行过程,类加载器,将硬盘中的字节码文件中的信息搬运到内存中)
- 执行,在内存里面执行,加载到内存里面,执行内存的空间,将方法区里面的常量区的值进行复制
内存:
一区:栈内存:先进后出,后进先出
二区:堆内存:
三区:方法区: 常量区;方法区(类模板);静态元素区
float e=3.4从double转化到float会有损失
3.4常量值,常量的存储形式不是十进制而是二进制形式存储
1 32bit(int)
3.4 64bit(double)
解决方法:float e=3.4F
byte a=1又为什么行呢:byte只有8个bit
赋值符号能够将前面无用的3个字节清除
数据类型的转化问题及运算符
-
同种数据类型之间是可以进行赋值操作
-
基本类型之间可以直接转换,引用类型之间可以直接进行转换,但是基本类型和引用类型之间不可以直接进行强制转换(通过包装类)
-
大数据类型空间可以直接接受小数据类型的值(自动转换),小数据类型空间不可以直接接受大数据类型的值(强制类型转换)
-
布尔类型不能与其他的基本类型转,只有true和false,但是和c语言不同,c语言中可以和0、1互换
-
& | ^ ! &&短路与 ||短路或
&& 短路 当前面为false时候激发,短路的是&&后面所有计算过程,比&稍微好一点,但是结果是一样的 & 可以视为逻辑运算,也可以视为位运算 &&只能当作逻辑运算来用 || 短路或 当前面为true时候激发,短路的是。。。。。。。,和|结果是一样的
-
位运算:& | ^ ~ << >> >>>
-
原码,反码 补码 二进制表示数字
6 原码:000000110 反码:000000110 补码:000000110 -6 原码:100000110 反码:111111001 补码:111111010 计算机中不管是正数还是负数,存储的形式都是以补码的形式来存储 >>保留符号位置1 填1 >>>不保留符号
增强型for
语法为:
for (Type value : array) {
expression value;
}
//以前我们这样写:
void someFunction ()
{
int[] array = {1,2,5,8,9};
int total = 0;
for (int i = 0; i < array.length; i++)
{
total += array[i];
}
System.out.println(total);
}
//现在我们只需这样写(和以上写法是等价的):
void someFunction ()
{
int[] array = {1,2,5,8,9};
int total = 0;
for (int n : array)
{
total += n;
}
System.out.println(total);
}
虽然看不到下标,但是都是对数组进行遍历
基本数据类型和引用数据类型在内存结构上的区别
-
int[] x= new int[]{10,20,30};
//栈内存中的小容器,类型定义了只能存储这种东西,容器中只能存一份 //见到new关键字,相当于在堆空间里面申请开辟一块新的空间 //数组在堆内存里面是一段连续的地址 //x里面存储的是hashcode
-
基本类型中变量存储的是值,,传递的是值,一个变量改变,另一个不变
-
引用数据类型存储的是地址,传递的是地址
[外链图片转存失败(img-FCvu06As-1562333099597)(/home/ach/Pictures/2019-02-28 19-58-31 的屏幕截图.png)]
多维数组
-
数据是用来存储一组相同类型数据的容器
-
数组内部存储的元素可以是基本数据类型也可以是引用数据类型,数组本身就是一个引用数据类型
静态初始化实例: int [][] array = {{1,2},{1,2,23},{4,5,6}}; 动态初始化: int [][] array ={{},{},{}}
-
二维数组的存储结构
int[][] array = new int[][] 二维数组传递的也是地址,二维数组的存储结构是树
[外链图片转存失败(img-eMnwOVLG-1562333099597)(/home/ach/Pictures/2019-03-02 21-15-51 的屏幕截图.png)]
-
如果小数组在初始化的时候没有指定长度,就没有小数组存在;
-
二维数组传递
public static void main(String[] args) { int[][] array = new int[3][2]; array[0][0] = 10; array[0][1] = 20; array[1] = array[0]; array[0] = new int[4]; array[0][0] = 100; System.out.println(array[0][0]); }
[外链图片转存失败(img-RkqTeEzw-1562333099598)(/home/ach/Pictures/2019-03-02 21-28-16 的屏幕截图.png)]
上一篇: 姑苏慕容与软件开发
推荐阅读