Java高级编程笔记1——数据类型,数组,运算符

本文详细介绍了Java编程的基础知识,包括编译器javac的使用、Java程序的运行方式、数据类型详解(基本数据类型如char、boolean等及对象类型),并探讨了数据声明、函数声明、参数传递等内容,同时涉及数组的声明与初始化、运算符及其优先级等关键概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编译器 javac
运行 java

数据类型:基本数据类型,对象类型。
{
	基本数据类型:char boolean byte short int long float double
	{	byte(有符号单字节整型-128~127)
		0开头是八进制,0x十六进制
		long ll = 123123L; default int
		float ff = 3.14f; default double
		byte bb = 100; int截断

		char在Java中占两个字节
		7-bit-ASCII GBK两字节
		Java======Unicode编码 每个两字节
		'\u75f6'转义Unicode  \u后加四位十六进制数
		UTF-8=汉字3字节(变长字节) Unicode=汉字2字节=高位先传
		记事本ANSI使用GBK word默认UTF-8
	}

	对象类型:
	{
		没有struct union
		class Date{
			int year;
			int month;
			int day;
		}//所有的复杂数据类型都是类/对象实现的
		
	}
	
	数据声明:
	{
		在类中可以声明数据,在函数里也可以。
		所有对象都在堆Heap里
		
		两个概念:引用 对象
		HelloWorld w = new HelloWorld();w是一个指针/引用。
		HelloWorld w2 = null;//引用 未指向任何对象
		垃圾对象:堆中的对象没有被任何指针指向
		引用是访问对象的唯一方式
		
		函数栈 栈:局部变量(自动变量) 堆:动态分配空间
		Java支持函数递归
	}
	
	函数声明:
	{
		
	}
	
	参数传递:
	{
		只有一种:传值
		swap(a, b)要使用引用/指针。
	}
}

数组
{
	声明:
	int[] a;//未初始化,不可用  
	int a[];//少用
	int[] b = null; //初始化为空
	int[] a = new int[10];
	
	int[][] a = new int[2][3];//二维数组
	for(int i = 0; i < a.length; i++){//二维数组初始化
		for(int j = 0; j < a[].length; j++){
			a[i][j] = 1;
		}
	}
	
	//非矩形的二维数组
	int[][] a = new int[2][];
	a[0] = new int[2];
	a[1] = new int[5];
	//全局变量默认值0
	//函数内局部变量一定要初始化
}

运算符
{
	算术>关系>逻辑
	一元>二元
	
	算术运算:{
		% 结果与被除数的符号位一致,与除数无关
		+- 运算结果类型不能低于int类型,可以有强制类型转换
		浮点->整型,向下取整或最大值(超出范围)
		
		下列两行不完全等价
		x = x + y;
		x += y;//隐含了一个类型转化 <==> x = (x-type)(x + y);
		
		数组之间不能赋值
		元素可以赋值
		有继承关系的引用数组之间可以互相赋值
		
		特殊运算符:>>> 无符号移位 符号位都补0
		
		int i = 5;
		i>>33; <==> i>>1;
		编译器自动取模
		byte也对32取模,计算结果是int类型
		
		int i = 0x80;
		byte b = -128;
		二者不同
	}
	
	关系运算:{
		结果为Boolean
	}
	
	逻辑运算:{
		~ 位反运算符
		- 算术反//算术
		! 逻辑反
		& ^ | 位逻辑运算 //int/boolean
		&& || 短路运算,只作用Boolean //可确定表达式值时,不再执行 
		?: 三元运算符,结果的精度由两个结果中精度大的决定,复制兼容
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值