1.简述对JVM,JRE,JDK的理解。
-jvm,全称虚拟机,jvm是整个java实现跨平台的 最核心的部分,
所有的java程序会首先被编译为.class的类文件,这种类文件可 以在虚拟机上执行,
也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,
由虚拟机将程序解 释给本地系统执行。
-jre是指java运行环境。光有JVM还不能成功执行class文件,
因为在解释class的时候JVM需要调用解释所需要的类库lib。
-jdk是java开发工具包,jdk中往往包含jre
2.简述环境变量path和classpath的作用?
-path,指定命令搜索路径 在命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。
我们需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。
-classpath,指定类搜索路径 包含了一个或多个目录,它们作为一种特殊的“根”使用,从这里展开对.class 文件的搜索。从那个根开始,解释器会寻找包名,
并将每个点号(句点)替换成一个斜杠,从而生成从CLASSPATH 根开始的一个路径名
如你引入了import Java util *,这个包中编译器要去寻找这个类在哪个地方,设置的clsspath设置了jdk的目录就会去寻找这个目录
3.java语言是否区分大小写? javacjava的作用?
-java语言区分大小写
-javac:编译Java文件为class类文件
-java:执行class文件---》run
4.简述main方法(是什么,什么特点,怎么用,何时用? )
-是类中的一段代码,可以让程序独立运行
-写在类中,格式固定, 一个类中只能有一个main方法,main方法可以让类单独运行
5.熟记java相关关键字 什么是关键字?有什么特点?
答案: 关键字又叫保留字,java中有特别意义的标识符,
所有的关键字都是小写字母
6.什么是注释?注释分为几种?注释有什么作用?
答案:单行注释 多行注释(块注释) javadoc注释
方便阅读和理解程序
7. 什么是标识符?由哪些部分组成?常见的命名规则有哪些?
答案: -标识符由字母、数字、下划线“_”、美元符号“$”或者人民币符号“¥”组成,并且首字母不能是数字。
-标识符不能是保留字和关键字
-标识符没有长度限制。
-标识符对大小写敏感
8.以下标识符错误的原因是什么,详细总结java标识符组成及规范
class、12java、goto、java@1、1张三、¥10
答案:class为关键字,标识符不能以数字开头
9.(Java 程序的编译与运行)假设有如下:
package com.corejava.chp1;
pub lic class HelloWorld{
public static void main(String args[]){
System.out.println("Hello World");
}
}
问:
1)假设这个代码存在 hello.java 文件中,那这个程序能够编译通过?为什 么?如果编译不通过,应该何改进
答案:不能,public关键字出现空格,编译器无法识别,消除空格即可
2)如果放置在桌面上,怎么编译执行
答案:命令行使用javac命令编译源文件
10.什么是常量?常量的分类?字面值常量表现形式有哪些?
答案:常量就是定义之后不会再发生改变的数据,常量可以分为六种:字符常量,字符串常量,整数常量,小数常量,布尔常量,空常量。-字符串,数字
11.Java中的数据类型分几类?基本数据类型有哪些?
答案:八大类,byte,short,long,int,double,float,char,boolean
12.数据类型转换: 隐式转换: 强制转换:
答案: 隐式转换 byte b=120; int i=b;
强制转换 int i=123; String str=(String)i;
13.第一题: byte b1=3,b2=4,b; b=b1+b2; b=3+4; 哪句是编译失败的呢?为什么呢?
答案:b=b1+b2;必须强制转换才可以使用
14. 第二题: byte by = 130;有没有问题?有问题如何解决?结果是多少呢?
答案:有问题,130超出了byte数据类型的范围 二进制转换补码显示10000010 ,十进制为-126
15.常见的算术运算符有哪些? +运算符的作用有哪些? 除法和取余的区别? ++和--的使用规则?
*答案:算术运算符 + = * / % 逻辑运算符 && || ! 关系运算符 == > < >= <= != 位运算符 & | >> <<
+运算符 进行算数运算, 连接字符串
除法:任何两个整数进行相除其结果一定为整数,如果想得到小数必须使其任何一个为小数
取余:取余运算的结果是余数.其结果只与运算符左边的数值有关与右边无关.任何整数%2其结果不是0就是1
++表示自增1 --表示自减1 ++a表示先+1在运算,a++表示先运算再+1,--同++
16.常见的赋值运算符有哪些? +=运算的作用是什么? 扩展的赋值运算符有什么特点?
答案:= += -= /= *= ,
+=表示左边和右边相加的结果赋值给左边,
存在强制转换,可能会丢失精度
17.short s = 1; s = s + 1;有没有问题?如果有怎么解决? short s = 1; s += 1;有没有问题?如果有怎么解决?
* 答案: s=s+1;无法编译通过,s会被当做int类型处理,需要强转。
18.常见的比较运算符有哪些? 比较运算符的结果有什么特点?
答案: > < = >= <= == !=
结果往往是一个逻辑值,是布尔类型
19.常见的逻辑运算符有哪些? &和&&的区别是什么? |和||的区别是什么?
答案: 逻辑运算符 && || !
&也用作位运算符,表示位与 |表示位或 属于位运算,位运算不具有短路功能 当&两边的操作数不是boolean的时候表示按位运算,&时要对所有的条件进行判断,所以会对后面的条件进行判断,所以会报错
&&和||可以连接多个表达式,属于逻辑运算,且支持短路功能
&&时判断第一个条件为false,后面的100/0==0这个条件就没有进行判断
20.位运算符^的特点是什么?
答案: 位异或运算,^两边的数据同号为0 异号为1
21.如何实现对两个整数变量的值进行互换。 a=10 b=20 答案:
int i=0; i=a; a=b; b=i;
22.三元运算符的格式是什么? 执行流程是什么?
答案: 条件表达式?表达式1:表达式2。
先判断条件,若为真执行表达式1,若为假执行表达式2
23.'a'+1,结果是什么?为什么?都做了什么事情呢?
等价于char a='a';System.out.println(a+1);
答案:'a'是一个字符在这里需要转换为unicode码,字符'a'的unicode码为97 所以输出为98
1.char字符存储的是Unicode编码的代码点,也就是存储的是U+FF00这样的数值,然而我们在调试或者输出到输出流的时候,是JVM或者开发工具按照代码点对应的编码字符输出的。
2. 所以虽然UTF-8编码的中文字符是占用3个或者4个字节,但是对应的代码点仍然集中在[0x4E00, 0x9FBB],所以char是能够存下在这个范围内的中文字符的。
3. 但是对于超过16bit的Unicode字符集,也就是Unicode的扩展字符集,一个char是放不下的,需要两个char才能放下。
24..short s = 3; s = s+2; s+=2,有什么区别,为什么?
答案:其中,s=s+2中的s会被当做int类型处理,s+=2中的s会被当做short类型处理
因为,只有int或者integer类型的数据才能直接进行算数逻辑运算
public static void main(String[] args) {
int x = 1,y = 1;
System.out.println(x++);//x++=1,先运算再+1
System.out.println(++y);//++y,先+1再运算
//&第一个都为false所以不会执行if内语句
if(x++==2 & ++y==2){
System.out.println("x="+x+",y="+y);
}
int m = 1,n = 1;
if(m++==2 && ++n==2) { m =7; }
//m++=1,++n=2
//&&:短路与,第一个我false则执行了else语句
System.out.println("x="+m+",y="+n);//x=2,y=1
int x1 = 1,y1 = 1;
//|:对所有的条件都判断
if(x1++==1 | ++y1==1) //true | false = true; x++=1,++y1=2
{ x1 =7;}
System.out.println("x="+x1+",y="+y1);//x=7,y=2
int x2 = 1,y2 = 1;
//:||如果第一个条件为真不再判断后面的,如果第一个条件为假再判断后面的
if(x2++==1 || ++y2==1) //x2++=1:true,++y2==1:false==>++y2=2;
{ x2 =7; }
System.out.println("x="+x2+",y="+y2);//x=7,y=1
}
以上通过其中是通过搜索资料,有的问题自己已经忘记的差不多了,通过练习能够达到熟练地操作。