Java面试:基础概念(二)

2014-11-24 11:52:18 · 作者: · 浏览: 54
) 长整型数字有一个后缀为“L”或“l”,八进制前缀为“0”,十六进制前缀为
“0x”;
4) 认浮点类型为double;
5) float数据类型有一个后缀为“f”或“F”,Double数据类型后可跟后缀“D”或
“d“
6)char类型也可以用通用转译字符,但是不能用ASCII码。可以用“\u0000”这种
格式,因为char型中使用的是unicode编码方式。
注:整型值存放,正数存放原码(二进制码),负数则存放补码(原码按位取反末位加
一)。
注:实型值在存储时会损失精度,所以不要直接比较两个实型值。系统默认的实型都是
double型,要使用时要在数据后加个f,或者强行转换。强转(占字节数大的类型转到占字
节数小的类型)时会放弃高位值只取低位值。
18,java中的数字数据类型减灾由占字节数小的类型到占字节数大的类型的可以有自动转换
,反之则需要强行转换,char型和int型之间可以相互转换。char和short不能像户转换。
注意:隐式类型转换;
a 运算符 b ,如果a,b中有任意一个是double型,前面运算的结果就是double型,如果a
,b中有任意一个是float型,前面运算的结果就是float型,如果a,b中有任意一个是long
型,前面运算的结果就是long型,如果a,b中没有double、float、long型,那么其结果就
为int型。
所有基本数据类型在使用时会事先分配空间,只本身就存在空间中,在传递时,就是值传递
,不是引用传递。
----------------------------------------
在类中定义的方法在返回值前加上static修饰符就可以在main方法中调用了。如果不用
static那就需要在main方法中创建对象,使用对象来调用对象的方法。
public class Test{
public static void main(String[] args){
Test t=new Test();
int b=1;
int c=2;
int[] a=new int[10];
t.sqort(a);
add(b,c)
}
public int[] sqort(int[] a){
.......
}
static int add(b,c){
.......
}
}
java中的运算符(java的运算符的优先级和结合性和c++相同)
System.out.println(3/2) 按整型计算 得1
1) >>= 前面是零补零,前面是一补一;
2) >>>= 无符号右移(强制右移都会移进一),
>>=和>>>=对于负数不一样
正数:右移n位等于除以2的n次方
负数:变成正数。
3) && 短路与,前面为假,表达式为假,后面的操作不会进行,& 会对所有条件进行判断
4) || 短路或,前面为真,表达式为真,后面的操作不会进行,| 会对所有条件进行判断
例:
if(a<3&(b=a)==0) b赋值
if(a<3&&(b=a)==0) b不赋值
5)instanceof,是用于判断一个对象是否属于某个类型
6)java中的求余运算符“%”可以对两个实型变量求余
注:按位与是为了让某些位置一,按位或是令某些位置零,按位异或是令某些位取反。
注:使用左右位移和无符号右移运算符的使用方法是 变量名<<=位移位数 ,变量名>
>=位移
位数 (前两个运算符是不会忽略整形符号位,也称逻辑位移),变量名>>>=位移位数
注意:左右位移和无符号右移运算符只能用于整形及其兼容类型(byte,int,short,long
注意:java程序的运行过程,首先是启动java 虚拟机,然后就是去找.class文件,先是从系
统的类库中找(系统之会在跟目录下查找,所以需要完整类名),如果找不到的话会去
CLASSPATH所设置的目录去找。然后加载到java虚拟机中。如果要使用到其他的在
JAVA_HOME中没有的类或者是其他公司提供的第三方的.jar(jar包)文件时,要把它的路径
及文件名加到CLASSPATH中。
java的流程控制
控制流
if()
if()….else
if()…..else if()….else
注意:else只是和其上面的同层的最近的if()来配对。
switch(){
case 'a':……..
case 1:……break;
default:
…………
}
注解:switch()内数据类型为byte short char int类型,只有以上四种类型的才可以在
switch()中使用。case块中不加break时顺序执行下面的语句。
循环语句
for(int i=0;i
while(){}
do{} while();-----------注意加分号
例子:
loop:for(int i=0;i
for(int j=0;j
if(3==j){
break loop;//---------------loop为标签 只能用在循环语
句中,循环//嵌套中用于跳到外层循环
}
}
}
辨析:
int x,a=6,b=7;
x=a++ + b++; //----------a=7,b=8,x=13
int x=6;x=~x;//---------------- 6的二进制0110 取反得11001 再转成补码
(取反加一) 10111 = -7
break,跳出本层循环,执行后面的代码,continue,提前终止本次循环,再一次进行循环
或循环条件满足或不满足后退出循环。break 标签名; continue 标签名;这两条语句知
识表示跳出有标签的循环和提前终止本次有标签的循环,只能用在循环语句(多层循环嵌套
)中,循环嵌套中用于跳到外层循环。
注意:for循环在使用时一定要注意不要忘记()中的两个";",死循环的写法for(;;){}或者
是用
while(true){}
注意:System.out.println("..."+a)在使用这个语句时,它会将其中非字符串(String)
的值转换成字符串(不是所有数据类型都可以的)。
java中的数组Array,其包含两个部分,分别是数组的引用和数组的空间两部分。
声明数组
1) 一组相同类型(可以是类)数据的集合;
2) 一个数组是一个对象;
3) 声明一个数组没有创建一个对象;
4) 数组能以下列形式声明:
int[] i 或 int i[]
Car[] c 或 Car c[]
*C++中只能 Car c[]
*JAVA中推荐用 Car[] c;
5)数组的定义 如:
int[] a(数组引用声明)=new int[10](数组空间的声明,