Java修炼笔记2

Java包含的数据类型:

基本数据类型:

整数类型:byte,short,int,long

byte a = 1;
short b = 2;
int c = 3;
long d = 4;

浮点类型:float,double

float a = 1.23f;
double a = 1.23;

字符类型:char

char c = 'a';

布尔类型:boolean

boolean flag = true;

复合数据类型:

class(类):

String = "Hello";
class Person{
	String name;
	int age;
	void say{
		System.out.print("hello!");
	}
}

interface(接口):

interface person{
	public abstract void dance();
	public abstract void sing();
	public abstract void eat();
}

数组:

int[] a = new int[10];
float[][] b = new float[10][10];

Java基本数据类型转换:

1.自动类型转换:
运算时,不同类型的数据先自动转换为同一类型(从低级向高级转换),然后再进行运算。

Type methodA(byte x, double y){
	return (short)x / y * 2;

程序最后的结果为double类型,(short)只是将x转换为short类型,因为y的类型为double,所占字节数比short高,因此x在转换为short类型后会自动转换成double类型。

2.强制类型转换:
高级数据类型要转换成低级数据类型,需要用到强制类型转换。

int i;
byte b = (byte)i;

为什么需要包装类:

1.基本数据类型不是对象,在一些场合不能直接使用(例如某些类方法参数必须是对象类型),需要转化为对应的包装类对象才能继续使用。
2.包装类的一些静态方法可实现不同数据类型的转化,如将字符串类型的数字“123”转为整数类型,可以通过int a = Integer.parseInt(“123”)完成,而将整数转为字符串使用,则可通过String c = String.valueOf(123)来完成。
3.包装类的静态属性中含有相应数据类型的范围,如Integer. MIN_VALUE(int的最小值),Double. NaN(非整数类型)。

int与integer的区别以及它们之间的相互转化:

区别::Integer是一个引用类型bai,而一个int是一个值类型。
转化方法:
1.基本数据类型转化为包装类对象通过构造方法来完成。如:

Integer vari = new Integer(5);

2.从包装类对象那里得到其代表的基本数据值需要调用该对象的相应方法,如上面的vari可以通过调用intValue()方法得到一个int类型的值。

逻辑运算符&和&&的区别:

“&”在执行操作时,运算符左右两边的表达式首先被执行,再对结果进行与运算。而“&&”在执行操作时,如果从左边的表达式中得到操作数能确定运算结果,则不再对右边的表达式进行计算。“|”和“||”运算同理。
例:下面的代码执行后,out的结果为10。

class Test{
	public static void main(String[] args){
		int out = 10;
		boolean boolean = false;
		if((b1 == true)&&(out += 10) ==20){
			System.out.println("相等,out = " + out);
		}
		else{
			System.out.println("不等,out = " + out);
		}
	}
}

如果将上面语句改为

if((b1 == true)&(out += 10) ==20)

则out结果为20。

逻辑运算符&与位运算符&的区别:

“&”作为逻辑运算符时,左右两边参与运算的都是布尔值,对左右两边的布尔值进行逻辑或运算,运算结果也是布尔值。

true & true = true;
true & false = false;
false & false = false;

“&”作为位运算符时,左右两边参与运算的都是二进制数,对左右两边的二进制数按位进行与操作,运算结果也是二进制数。

11010110 & 01011001 = 01010000;

Java语言中可以跳出多重循环的语句:

1.break语句
break语句通常有下述不带标号和带标号的两种形式:

break;
break lab;

其中,break是关键字,lab是用户定义的标号。
break语句虽然可以独立使用,但通常主要用于switch结构和循环结构中。控制程序执行流程的转移,可有下列三种情况:
(1).break语句用在switch语句中,其作用是强制退出switch结构,执行switch结构后的语句。
(2).break语句用在单层循环结构的循环体中,其作用是强制退出循环结构。若程序中有内外两重循环,而break语句写在内循环中,则只能退出内循环,而不能退出外循环。若想要退出外循环,可使用带标号的break语句。
(3).带标号的break语句用在循环语句中,必须在外循环入口语句的前上方写上标号,可以使程序流程退出标号所指明的外循环。

p: for(int i = 0; i < 100; i++){
   		for(int  j = 0; j < 100; j++){
   		……
   			if(){break p;}
   		}
   	}

2.continue语句
continue语句只能用于循环结构中,其作用是使循环短路。它也有带标号和不带标号两种形式。
continue语句也成为循环的短路语句,用在循环结构中,使程序执行到continue语句时回到循环的入口处,并执行下一次循环,而使循环体内写在continue语句后的语句不执行。
关于带标号的使用同break语句基本一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值