java基础--基本数据类型,运算符

来源:互联网 发布:windows重置出现问题 编辑:程序博客网 时间:2024/04/25 17:27
一:
内置,原生类,基本。。。对象(引用)数据类型=》拆箱,装箱

基本数据类型:八种,字节数
byte 1字节=》-128----127;byte b=(byte)128=》b=-128
short 2字节
int 4字节
long 8字节
float 4字节=》
浮点型默认double,而flooat可以定义整形,若是定义float a=1.0则错误,需要float a=(float)1.0或float a=1.0f
double 8字节
char 2字节=》unicode可以存储汉字,每个中文字符占用2个字节,每个英文字符占用1个字节,以UTF-16 Big Endian的方式保存一个字符。
boolean 1字节

八中基本类型以及对象类型的默认值(缺省值):
int,byte,short,long=>0
float,double=>0.0
char=>\u0000
boolean=>false
对象=>null
字符串跟整数相加相当于字符串拼接

不同类型比较应该会将低精度类型自动转为高精度类型再比较。


1、所占位数少的可以转换为所占位数多的类型,比如byte转char,char转int等;
2、而所占位数多的转为所占位数少的默认情况下不能实现转换,需要强制类型转换,这样可能会丢失一部分原始数据;
3、此外,boolean类型数据和其他七种不能互相转换。


标识符?不可以关键字,标识符可以包括这4种字符:字母、下划线、$、数字;开头不能是数字;不能是关键字
开头不可以是数字

关键值都是小写的,Byte,SHort不是,true,false,null不是。then,sizeof不是

如果//,/*等出现在/* */中,会视为普通字符,不具备功能例如:/*//*/
/* */不可以嵌套


1、实现int和Integer类之间的转换
在实际转换时,使用Integer类的构造方法和Integer类内部的intValue方法实现这些类型之间的相互转换,实现的代码如下:
int n = 10;
Integer in = new Integer(100);
//将int类型转换为Integer类型
Integer in1 = new Integer(n);
//将Integer类型的对象转换为int类型
int m = in.intValue();
2、Integer类内部的常用方法
在Integer类内部包含了一些和int操作有关的方法,下面介绍一些比较常用的方法:
a、parseInt方法
public static int parseInt(String s)
该方法的作用是将数字字符串转换为int数值。在以后的界面编程中,将字符串转换为对应的int数字是一种比较常见的操作。使用示例如下:
String s = “123”;
int n = Integer.parseInt(s);
则int变量n的值是123,该方法实际上实现了字符串和int之间的转换,如果字符串都包含的不是都是数字字符,则程序执行将出现异常。(说明:异常的概念将在下一章进行讲述)
另外一个parseInt方法:
public static int parseInt(String s, int radix)
则实现将字符串按照参数radix指定的进制转换为int,使用示例如下:
//将字符串”120”按照十进制转换为int,则结果为120
int n = Integer.parseInt(“120”,10);
//将字符串”12”按照十六进制转换为int,则结果为18
int n = Integer.parseInt(“12”,16);
//将字符串”ff”按照十六进制转换为int,则结果为255
int n = Integer.parseInt(“ff”,16);
这样可以实现更灵活的转换。
3 toString方法
public static String toString(int i)
该方法的作用是将int类型转换为对应的String类型。
使用示例代码如下:
int m = 1000;
String s = Integer.toString(m);
则字符串s的值是”1000”。
另外一个toString方法则实现将int值转换为特定进制的字符串:
public static int parseInt(String s, int radix)
使用示例代码如下:
int m = 20;
String s = Integer.toString(m);
则字符串s的值是”14”。
其实,JDK自从1.5(5.0)版本以后,就引入了自动拆装箱的语
二:运算符
~非
|或
&与
^异或
>>右移
<<左移
>>>右移,左边空出来的0填充



例一:
Integer i = 42;
Long l = 42l;
Double d = 42.0;
下面为true的是
(i == l)
(i == d)
(l == d)
i.equals(d)
d.equals(l)
i.equals(l)
l.equals(42L)
同类型的进行比较,如Integer 与int,Long与long进行==比较时,会自动拆箱;不同类型之间进行比较,如果有一方为非包装类,则会自动拆箱。如果两方都为包装类,则不会拆箱,且不能比较,编译会报错。而 i , d , l 是不同的类型,所以返回假。
选项 G ,会自动装箱,将 42L 装箱成 Long 类型,所以调用 equals 方法时,类型相同,且值也相同,因此返回真。