目录
2. &和&&区别和联系,|和||区别和联系;实际项目中,什么样情况用哪种
1. Java跨平台原理
总 | Java语言之所以流行,是和Java的很多优点分不开的。而Java的最大优点是就是跨平台。Java的跨平台可以使用8个字概括:一次编译,到处运行; Java程序的跨平台主要是指(Java源代码编译后的)字节码文件可以在任何(具有Java虚拟机的)计算机或者电子设备上运行。 |
分 | Java语言的执行过程如图所示:
|
总 | Java语言具有一次编译,到处运行的特点。是说编译后的.class可以跨平台运行。 Java语言可以跨所有的平台吗?不见得,要看是否提供并安装相应的虚拟机。 |
可选 | C语言跨平台的原理 C语言的源代码使用不同的编译器进行编译,编译之后直接生成指定平台的机器码。所以C语言的跨平台可以使用“多次编译,到处运行”来概括。 因为C语言的运行时直接运行机器码,而Java的字节码还有经过一个解释的过程才生成机器码再运行,所以从性能上讲,C语言的性能要高于Java 在互联网情况下,平台各异。所以Java的跨平台相比C语言的跨平台更具有优势。 |
2. &和&&区别和联系,|和||区别和联系;实际项目中,什么样情况用哪种
总 | &和&&是Java中的逻辑与运算符,都是双目运算符。如果两个操作数都是true,结果是true,否则是假;无论使用哪个运算符,对最终的运算结果时候没有影响的。 |
分 | (1)、&称为逻辑与运算符,&&称为短路与运算符。 对于&:无论任何情况,&两边的操作数都会参与计算。 7>8 & 7==7 对于&&:当&&左边的操作数为false时,&&右边的操作数将不参与计算,此时最终结果都为false。 生活案例:如果大明和二明都同意去颐和园参观,妈妈才会领他们去;结果妈妈问了大明,大明不去,就没有必要再问二明了 技术案例:登录成功需要用户名和密码都正确才成功,如果用户名已经错了,就没有必要判断密码了。if(“bjsxt”.equals(username) && “bjsxt”.equals(pwd)){ } (2)&还可以用作位运算符。当&两边操作数不是boolean类型时,而是整数类型时&用于按位与运算符的操作。但是&&没有这个位运算功能 5 & 6 |
总 | 无论使用哪个运算符,对最终的运算结果时候没有影响的。 推荐平时多使用&&,因为它效率更高些。 |和||的联系和区别与&和&&类似,此处不再重复。 |
可选 |
3. switch条件变量的取值类型
总 | switch是Java中的多重分支语句,只能进行等值判断,不能进行区间判断。其中条件变量的取值类型是该语句的一个需要重点掌握的内容。 |
分 | 条件变量的取值范围是 1)整数类型中的 byte、short、int。(long不可选) 2)字符类型中的char(可以理解为int) 3)JDK1.5后增加了enum枚举类型 4)JDK1.7后增加了String类型 |
总 | 不可以是 1) 整数类型long (整数中就它不可以) 2) Boolean类型(多重分支,boolean只有两个值,就比凑热闹了) 3)浮点类型float、double(不可以精确比较) |
可选 | switch中用到了break关键字,用来跳出switch语句;另外break还可以使用在循环语句中。 switch语句中还使用了default关键字,default关键字中还可以使用在接口中,用来表示在JDK8之后接口中定义的非抽象但是可以被实现类重写的方法。 |
4. 数组查找操作:
定义一个长度为10 的一维字符串数组,在每一个元素存放一个单词;然后运行时从命令行输入一个单词,程序判断数组是否包含有这个单词,包含这个单词就打印出“Yes”,不包含就打印出“No”。
public class TestArray {
public static void main(String[] args) {
//定义一个长度为10 的一维字符串数组
String [] arr = new String[10];
//在每一个元素存放一个单词
arr[0] = "JavaSE";
arr[1] = "MySQL";
arr[2] = "JDBC";
arr[3] = "MyBatis";
arr[4] = "JSP/Servlet";
arr[5] = "SpringMVC";
arr[6] = "Spring";
arr[7] = "SpringBoot";
arr[8] = "SpringCloud";
arr[9] = "架构";
//从命令行输入一个单词
Scanner input = new Scanner(System.in);//alt+enter
System.out.println("请输入一个单词");
String str = input.next();
//判断数组是否包含有这个单词
int index = -1;//默认不包含
for (int i = 0; i < arr.length ; i++) {
if(str.equals(arr[i])){ //arr[i]== str比较的是地址
index = i;
break;
}
}
//包含这个单词就打印出“Yes”,不包含就打印出“No”
if(index ==-1){
System.out.println("No");
}else{
System.out.println("Yes");
}
}
}
5. 获取数组最大值和最小值操作:
利用Java的Math类的random() 方法,编写函数得到0到n之间的随机数,n是参数。并找出产生50个这样的随机数中最大的、最小的数,并统计其中>=60的有多少个。
public class TestArray2 {
public static void main(String[] args) {
//定义一个数组,长度是50
int arr [] = new int[20];
//生成50个随机数并放入数组
for (int i = 0; i < arr.length ; i++) {
//生成一个随机数
int elem =(int)( Math.random()*31);//[0,1) double---[0,31) double---[0,30] int
//赋给数组元素
arr[i] = elem;
}
//输出数组元素
System.out.println(Arrays.toString(arr));
//查询其中最大值和最小值
int max = arr[0];
int index = 0; //先假设第一个数最大数
for (int i = 0; i < arr.length ; i++) {
if(arr[i]>max){
max = arr[i];
index = i;
}
}
System.out.println("max="+max+",index="+index);
//统计其中>=60的有多少个
int count = 0;//默认一个也没有
for (int i = 0; i < arr.length ; i++) {
if(arr[i]>22){
count++;
}
}
System.out.println("大于22的数的个数:"+count);
}
}