java基础测试大集合 今天收罗精选一下Java题 适合小白挑战和新手回顾
基础一
1、JRE是什么?作用是什么?
JRE是java运行环境。它包含了JVM和一些支撑java运行的核心类库。
2、JDK的是什么?作用是什么?
JDK是java开发环境。它包含了运行java所需的JRE和一些开发所使用的工具包。
JDK的作用是开发java程序
4、JRE、JDK、JVM的区别是什么?
JVM:java程序是由JVM来加载并运行的
JRE:java程序要运行需要安装jre[java运行环境],包含了JVM虚拟机,和支撑java运行所需要的相关类库
JDK:开发java程序时需要安装的开发环境。程序员使用。
5、阐述java中有哪几种数据类型
java中分为两类数据类型:
1、基本数据类型整数: byte short int long小数: float double字符: char布尔: boolean 有时候作用挺大的
2、引用数据类型类数组...
7、以下代码存在什么问题,怎么修改
public class Test{public static void main(String[] args){float f =3.14;System.out.println(f);}
}
//存在什么问题?
3.14属于常量,而小数类型的常量默认为double类型
//修改后的代码:
在使用float类型定义一个小数时,需要在常量值的后面添加:f
public class Test{public static void main(String[] args){float f =3.14F;//添加f(大小写都可以)System.out.println(f);}
}
8、以下选项中的标识符中,哪些是合法的( )
A: username
B: 123username //不能以数字开头
C: username123
D: class //不能使用关键字
E: user_name
F: 98.3 //不能以数字开头、 不能包含点
G: _username
H: HelloWorld
I: $ username //不能使用空格
9、找出以下代码的错误,并修改
public class Test07_01 {public static void main(String[] args) {int a; //只定义变量a,没有赋值System.out.println(a);//打印输出变量a{int c = 20; //变量c的有效范围在所属大括号中System.out.println(c);}c = 30;//不能使用变量c(原因:变量c的范围在大括号中)System.out.println(c);}
}
//修改后的内容
public class Test07_01 {public static void main(String[] args) {int a=0; System.out.println(a);{int c = 20;System.out.println(c);c = 30;System.out.println(c);}}
}
1、去除大括号
2、在大括号后面,书写:int c=30;
3、把c=30;System.out.println(c); 放到大括号中
12、找出以下代码的错误,并修改
public class Test03 {public static void main(String[] args) {byte b = 3;b = b + 4; //b是变量,值不确定(类型不确定)。 4是常量,默认是int类型System.out.println("b=" + b);}
}
//修改后的代码
public class Test03 {public static void main(String[] args) {int b = 3;b = b + 4; System.out.println("b=" + b);}
}
14、以下代码哪句是编译失败的呢?为什么呢?
byte b1=3,b2=4,b;
b = b1+b2; //在idea中有错误。
b = 3+4;//在使用javac命令对.java程序进行编译时,有常量值运算的,在编译时就已经把运算结果赋值给了变量
//原因
b1和b2在运算时,无法确定具体的数据类型,jvm默认为int类型运算
13、针对以下代码,画出内存中的图解
int num = 10;
num = 20;
System.out.println(num);
1、Java语言中两种数据类型转换的区别?
java中数据类型转换分为两种:
1、自动类型转换
2、强制类型转换
2、Java中有哪些运算符,分别是什么?
java中的运算符:
1. 算术运算符 + - * / % ++ --
2. 比较运算符(关系运算符) > < >= <= == !=
3. 赋值运算符 = += *= /= -= %=
4. 逻辑运算符 & | ! && ||
5. 三元运算符 (比较运算表达式)?表达式1:表达式2
3、&和&&的区别
&,逻辑与运算。会对&符号两边的比较运算表达式进行计算
&&,短路与运算。 当&&符号前面的运算结果为false时,&&符号后面的代码不会再执行
4、||和|的区别
|,逻辑或运算。会对|符号两边的比较运算表达式进行计算
||,短路或运算。 当||符号前面的运算结果为true时,||符号后面的代码不会再执行
5、根据以下代码,画出内存图解
int num = 10;
int result = ++num;
System.out.println(result++);
6、根据以下代码,画出内存图解
int 类型 4字节 重点自增自减都是在临时空间
int num = 100;
num = num++;
System.out.println(num);
7、定义两个变量并初始化,实现两个变量值的交换
public static void main(String[] args) {int num1 = 10;int num2 = 20;
System.out.println("交换后的值:" + num1 + " , " + num2);//借助临时变量实现两个值交换int temp = num1;num1 = num2;num2 = temp;
System.out.println("交换后的值:" + num1 + " , " + num2);
}
预留作业: 不允许借助第三方变量,实现两个变量之间数值交换?
位运算 a^=b b^=a a^=b
练习二
1、看程序说结果,请不要提前运行?
public class Test01 {public static void main(String[] args) {int x = 4;int y = (--x)+(x--)+(x*10);System.out.println("x = " + x + ",y = " + y);}
}
//结果:
x = 2,y = 26
5、分析以下需求,并用代码实现 1.键盘录入三个int类型的数字 2.要求: (1)求出三个数中的最小值并打印 (2)求出三个数的和并打印
public class Test2 {public static void main(String[] args) {//创建ScannerScanner sc = new Scanner(System.in);System.out.print("请输入三个数字:");//接收键盘录入的3个数值int num1 = sc.nextInt();int num2 = sc.nextInt();int num3 = sc.nextInt();
//求最小值int min = (num1 < num2) ? num1 : num2;min = (min < num3) ? min : num3;System.out.println("最小值:" + min);
//计算3个数的和int sum = num1 + num2 + num3;System.out.println("三个数字之和:" + sum);}
}
6、分析以下需求,并用代码实现
1. 键盘录入一个三位整数数,请分别获取该三位数上每一位的数值2. 例如:键盘录入的整数123的个位、十位、百位,分别是3、2、13. 打印格式:"数字123的个位是 3, 十位是 2, 百位是 1"
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {//1. 创建ScannerScanner sc = new Scanner(System.in);//2. 提示用户录入并接收System.out.println("请录入一个100 - 999 之间的整数: ");int num = sc.nextInt();//3. 获取各个位数上的数字int ge = num % 10;int shi = num / 10 % 10;int bai = num / 100 % 10;//4. 打印System.out.println("数字"+num+"的个位是 "+ge+", 十位是 "+shi+", 百位是 "+bai);}
}
7、看程序说结果,请不要提前运行
public class Test04 {public static void main(String[] args) {int x = 1,y = 1;if(x++==2 & ++y==2) {x =7;}System.out.println("x="+x+",y="+y); int a = 1,b = 1;
if(a++==2 && ++b==2) {a =7;}System.out.println("a="+a+",b="+b);}
}
//结果:
x=2,y=2
a=2,b=1
++、-- 的应用书写:
1、单独使用: 变量++ ++变量
2、赋值使用: 数据类型 变量2 = 变量1++; 数据类型 变量2 = ++变量1;
3、打印输出: System.out.println(变量++);
单独使用:
变量++ ++变量 从功能实现上没有区别 (都是对变量进行+1运算)
赋值使用:
数据类型 变量2 = 变量1++;
运算过程:
1、先把变量1赋值到内存中一个临时空间下 ( 例: int temp = num1 )
2、再对变量1进行+1运算 ( 例 : num1+1 )
3、最后把临时空间下的值,赋值给变量2 ( 例: num2 = temp )
示例:
int num1=10;
int num = num1++; //num是10 num1是11
数据类型 变量2 = ++变量1;
运算过程 :
1、先对变量1进行+1运算 ( 例 : num1 + 1 )
2、再把变量1的值,赋给一个临时变量 ( 例: int temp = num1 )
3、再把临时空间下的值赋值给变量2
示例:
int num1 =10;
int num2 = ++num1 // num1=11 num2=11
打印输出:
System.out.println( 变量++ ); //1、变量赋值到临时空间; 2、变量+1 3、取出临时空间下的值
System.out.println(++变量);//1、变量+1 ; 2、变量赋值到临时空间 3、取出临时空间下的值
练习一
1、if语句和switch语句的区别
相同:都是用来进行选择流程控制的语句
不同:switch适用于判断固定值的时候用 枚举字符串基本数据类型;switch不适于进行区间比较;if适用于判断区间或范围的时候用;if语句可以完全代替switch语句
2、三种循环语句的区别
for、while: 属于先判断,后执行循环体
do..while: 属于先执行循环体,再判断
6、分析以下需求,并用代码实现: 1.根据工龄(整数)给员工涨工资(整数),工龄和基本工资通过键盘录入 2.涨工资的条件如下: [10-15) +5000 [5-10) +2500 [3~5) +1000 [1~3) +500 [0~1) +200 3.如果用户输入的工龄为10,基本工资为3000,程序运行后打印格式"您目前工作了10年,基本工资为 3000元, 应涨工资 5000元,涨后工资 8000元"
ifyear >10;>5;>3;>1;else;
4、分析以下需求,并用代码实现: 1.功能描述:模拟计算器功能,对键盘录入的两个int类型的数据进行加、减、乘、除的运算,并打印运算结果 2.要求: (1)键盘录入三个整数,其中前两个整数代表参加运算的数据, 第三个整数为要进行的运算(0:表示加法运算,1:表示减法运算,2:表示乘法运算,3:表示除法运算) (2)使用今天所学知识完成功能 (3)演示格式如下: 请输入第一个整数:30 请输入第二个整数:40 请输入您要进行的运算(0:表示加法运算,1:表示减法运算,2:表示乘法运算,3:表示除法运算):0 控制台输出:30+40=70
//代码
import java.util.Scanner;
public class Test3 {public static void main(String[] args) {//创建ScannerScanner sc = new Scanner(System.in);System.out.print("请输入第一个整数:");int num1 = sc.nextInt();System.out.print("请输入第二个整数:");int num2 = sc.nextInt();System.out.print("请输入您要进行的运算(0:表示加法运算,1:表示减法运算,2:表示乘法运算,3:表示除法运算):");int op = sc.nextInt();
//根据运算符,执行不同的运算switch (op) {case 0:System.out.println(num1+"+"+num2+"="+(num1+num2));break;case 1:System.out.println(num1+"-"+num2+"="+(num1-num2));break;case 2:System.out.println(num1+"*"+num2+"="+(num1*num2));break;case 3:System.out.println(num1+"/"+num2+"="+(num1/num2));break;default:System.out.println("非法运算符");break;}}
}
练习二
1、看程序,完成以下问题
public class Test11 {public static void main(String[] args) {for(int x=1; x<=10; x++) {if(x%3==0) {//()在此处填写代码}System.out.println("Java基础班");}}
}
问题:1.想在控制台输出2次:"Java基础班" 括号()里面应该填写什么?1 2 breakbreak;2.想在控制台输出7次:"Java基础班" 括号()里面应该填写什么?1 2 continue 4 5 continue 7 8 continue 10continue;3.想在控制台输出13次:"Java基础班" 括号()里面应该填写什么?1 2 3 4 5 6 7 8 9 103 : System.out.println("Java基础班")6 : System.out.println("Java基础班")9 : System.out.println("Java基础班")
重点 a+b a-b
//不借助第三方变量,实现两个变量值的交换
int num1=10;
int num2=20;
num1 = num1+num2; //num1=10+20 //30num2 = num1+num2; //num2=30-20 //10num1 = num1-num2; //num1=30-10 //20
3、输出100以内被6整除的数字,每5个换一行,
如:1 2 3 4 5
6 7 8 9 10
。。。。。
public class Test2 {//输出100以内被6整除的数字,每5个换一行,public static void main(String[] args) {int line=1;//记录打印输出的个数(计数器)//循环:从1~100for (int i = 1; i <= 100; i++) {//判断是否可以整除6if (i % 6 == 0) {
System.out.print(i + "\t");
//判断是否已输出5个数字if(line%5==0){System.out.println();}line++;//计数器+1}}}
}
5、报数游戏(1-100),遇到数字中包含 7 和 7 的倍数时需要跳过喊黑马,然后接着输出后续的数字
分析:
A) 1-100之间的数字可以由循环提供
B) 对循环提供的每个数字做判断, %7==0 , / 10 = 7 , %10=7时为0的则是满足的。此时不需要打印数字,需要跳过。使用continue关键字完成
public class Test4 {public static void main(String[] args) {//循环: 1~100for (int i = 1; i <= 100; i++) {//判断是否为7的倍数,是否包含7if(i%7==0 || i/10==7 || i%10==7){System.out.print("黑马 ");continue;}System.out.print(i+" ");}}
}
2、使用for循环打印出九九乘法表。打印效果如下:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
分析:
乘法表有9行,9列,怎么完成?需要使用循环嵌套
步骤:
1、 使用for循环代表9行数据
2、 在for循环中嵌套for循环代表每行要打印的列数
3、 在内部for循环中打印每一个等式,等式和等式之间用制表符隔开(System.out.print(j + "" + i + "=" + ji + "\t"); 其中”\t”是制表符)
4、 没打印完一行等式之后执行换行操作
//代码
public class Test2 {public static void main(String[] args) {for (int i = 1; i <= 9; i++) { //外循环控制行for (int j = 1; j <= i; j++) { //内循环控制列System.out.print(j + " * " + i + " = " + i * j + "\t");}System.out.println(); //内循环执行结束, 意味着一行打印完毕, 需要换行}}
}
练习一
6、代码如下,画出内存图
int[] arr1 = {11,22,33};
int[] arr2 = new int[3];
arr2 = arr1;
arr2[1]=200;
System.out.println(arr1[1]);
7、定义一个含有五个元素的数组,并为每个元素赋值,求数组中所有元素的最小值
1.定义5个元素数组
2.可以使用初始化数组的两种方式之一为数组元素赋值
3.遍历数组求数组中的最小值
//代码
public class Test4 {public static void main(String[] args) {//定义一个数组int[] array = new int[]{11, 10, 8, 20, 4, 13};
//定义一个变量,记录最小值int min = array[0];//假设最小值为索引0下的元素
//遍历数组for (int i = 1; i < array.length; i++) {//比较两个数值if (min > array[i]) {min = array[i];//记录下最小值}}System.out.println("最小值:"+min);}
}
3、定义一个长度为10的int型的数组arr,依次生成10个1-100(范围包括1和100)的随机数并存入arr中,然后将arr中的元素都往前移一个位置,最后一个元素的值是原来第一个元素的值,然后输出arr转换前和转换后的所有元素,演示格式如下:
//代码
public class Test3 {public static void main(String[] args) {//定义数组int[] arr = new int[10];//遍历数组,存储随机值for (int i = 0; i < arr.length; i++) {arr[i] = (int) (Math.random() * 100 + 1);}//打印数组中元素System.out.println("转换后的元素顺序如下:");for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + "\t");}//数组中的元素移动://取出数组中第一个元素值int first = arr[0];//遍历数组,并移动元素位置,从1开始 不然就是数组长度-1for (int i = 1; i < arr.length; i++) {arr[i - 1] = arr[i];}//修改数组中最后一个元素值arr[arr.length - 1] = first;//打印数组中元素System.out.println("转换后的元素顺序如下:");for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + "\t");}}
}
4、猜字母游戏(参考课堂上猜数字案例)
随机获取任意一个26个英文小写字母
用户输入小写字母
如果输入的字母大于随机字母,则提示:太大了! (继续让用户猜)
如果输入的字母小于随机字母,则提示:太小了! (继续让用户猜)
如果输入的字母和随机字母相同,则提示:恭喜您,猜对了! (游戏结束)
提示:(随机字母)
使用数组存储26个英文小写字母
通过随机数,获取0~26之间(不包含26)的随机数字
//代码
import java.util.Scanner;
public class Test4 {public static void main(String[] args) {//定义一个数组char[] chs = new char[26];//循环给数组赋值字符和int可以相互比较 A65 a97 '0'48for(int i=0;i<chs.length;i++){chs[i]=(char)('a'+i);}
//获取0~25随机数字 作为数组下标int index = (int)(Math.random()*26);char ch = chs[index];//利用索引获取数组中对应的字母
//创建ScannerScanner sc = new Scanner(System.in);
//循环while(true){System.out.println("请输入您猜的小写字母:");//超纲:sc.nect() 获取录入的字符串 charAt(0):获取字符串0索引下的单个字符char guess = sc.next().charAt(0);//比较字母大小if(ch<guess){System.out.println("太大了!");}else if(ch>guess){System.out.println("太小了!");}else if(ch == guess){System.out.println("恭喜您,猜对了! ");break;//终止循环}}}
}
7、编码题:打印等腰三角形
0000*
000***
00*****
0*******
********* //代码:
public class Test7{public static void main(String[] args) {for (int i = 1; i <= 5; i++){//行//空格for(int j=1; j<=5-i;j++){System.out.print(" ");}
//星号for(int k=1;k<=2*i-1;k++){System.out.print("*");}
System.out.println();//打印输出完一行后,换行}}
}
9、编码题:打印字母三角形
根据用户输入的数字,打印数字行数的等腰三角形
例如:用户输入 4 ,则打印如下三角形
ABBB CCCCC
DDDDDDD//代码
import java.util.Scanner;
public class Test1 {public static void main(String[] args) {System.out.println("请输入一个[3~26]的数字:");Scanner sc =new Scanner(System.in);int num = sc.nextInt();
char ch ='A';//定义字符变量//正等腰三角for (int i = 1; i <= num; i++) {//行//空格for (int j = 1; j <= num - i; j++) {System.out.print(" ");}//星号for (int k = 1; k <= 2 * i - 1; k++) {System.out.print((char)(ch+i-1));}System.out.println();}}
}
import java.util.Arrays;
public class Test2 {
public static void main(String[] args) {
//数组1
int[] arr1 = new int[10];
//数组2
int[] arr2 = new int[10];
initArray(arr1);//初始化数组中的元素值
initArray(arr2);//初始化数组中的元素值
System.out.println(Arrays.toString(arr1));
System.out.println(Arrays.toString(arr2));
concat(arr1,arr2);
}
//将两个数组中不同的元素拼接成一个字符串
public static void concat(int[] arr1, int[] arr2) {
//定义一个字符串变量
String str = "";
//遍历arr1数组
for (int i = 0; i < arr1.length; i++) {
//判断arr1中的元素在arr2中是否存在 再再次调用内嵌是否有重复数据的方法存入新集合
boolean flag = isRepeatNum(arr2, arr1[i]);
//当元素没有重复
if (flag) {
str = str + arr1[i] + ",";
}
}
System.out.println(str);
//遍历arr2数组
for (int i = 0; i < arr2.length; i++) {
//判断arr1中的元素在arr2中是否存在 再次调用内嵌是否有重复数据的方法存入新集合
boolean flag = isRepeatNum(arr1, arr2[i]);
//当元素没有重复
if (flag) {
str = str + arr2[i] + ",";
}
}
System.out.println(str);
}
//初始化数组中的元素
public static void initArray(int[] arr1) {
int index = 0;//记录索引值
while (true) {
//随机数字
int guess = (int) (Math.random() * 100 + 1);
//调用方法,判断是否有重复数值 调用判断不重复数据true依照index存入
boolean flag = isRepeatNum(arr1, guess);
//当没有重复数字时,添加随机数字到数组中
if (flag) {
arr1[index] = guess;
index++;//索引值+1
}
//判断循环停止条件
if (index == arr1.length) {
break;//停止循环
}
}
}
//判断随机数字在数组中是否有重复 判断是否重复数据的方法
public static boolean isRepeatNum(int[] arr, int num) {
//遍历数组
for (int i = 0; i < arr.length; i++) {
//只要发现有重复数字
if (num == arr[i]) {
return false;
}
}
return true;
}
}
3、说出程序的运行结果( A)
public static void main(String[] args) { int j = 1; for(int i = 5; i > 0; i-=2) { j*=i; } System.out.println(j); }
A、15 B、1 C、60 D、0
8、写出下面程序的打印结果( C )
A、地址值
B、0
C、运行时报错
D、10
9、写出下面程序的打印结果( D ) A、编译时报错 B、运行时报错 C、0 D、5050
public static void main(String[] args) { int[] arr = new int[0]; change(arr); System.out.println(arr); } public static void change(int[] arr) { arr[0] = 10;
java基础测试大集合 今天收罗精选一下Java题 适合小白挑战和新手回顾相关推荐
- java重要基础知识点_必看 | 新人必看的Java基础知识点大梳理
原标题:必看 | 新人必看的Java基础知识点大梳理 各位正在认真苦学Java的准大神,在这烈日炎炎的夏季里,老九君准备给大家带来一个超级大的"冰镇西瓜,"给大家清凉一下,压压惊. ...
- 【转载】100多个很有用的JavaScript函数以及基础写法大集合
1.document.write("");为 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4 ...
- java基础入门-04-【集合学生管理系统】
Java基础入门-04-[集合&学生管理系统] 11.集合&学生管理系统 11.1.ArrayList 集合和数组的优势对比: 11.1.1 ArrayList类概述 11.1.2 A ...
- Java基础及大数据视频
Java基础及大数据视频 Java相关视频: Java基础:链接:https://pan.baidu.com/s/1fvebyh7M8Yc-Igj_Gsg0Yg 提取码:5sce : Javaweb: ...
- Java 基础面试之集合
Java 基础面试之集合 1.Collection接口 的实现类 答:Collection接口有3个子接口:List.Set.Queue a.List(有序.可重复):的实现类有ArrayList.V ...
- java基础不好框架能学会吗_转行Java能学会吗?零基础学习Java的学习路线
Java的跨平台性.通用性.安全性.高效性决定了这门语言在未来10年都会是最热门的语言之一.Java技术的安全性和平台移植性足够让他应用到不同的领域,它的工作需求足够大,现实一点来说即使Java濒临o ...
- JAVA基础测试企业面试题
元享利贞科技有限公司 1.final.finally.finalize区别 final 修饰长量 变成常量(声明的时候 实例代码块) 修饰变量 表示这个变量的值不能被修改 只能初始化一次(声明,实例代 ...
- 有java基础学习大数据该如何规划
大数据开发对于Java语言的依赖程度比较高,如果想尝试大数据开发,学习过Java语言就很容易上手 Java是目前使用广泛的编程语言之一,具有的众多特性,特别适合作为大数据应用的开发语言. 目前很多大数 ...
- 有java基础转行大数据好学么
学大数据必学Java,当前大数据领域的岗位主要集中在开发.分析.运维三大领域,其中大数据开发对于Java语言的依赖程度比较高,如果从事大数据开发岗学习Java语言很有必要. Java是目前使用广泛的编 ...
最新文章
- Android特色开发之Google MAP
- 项目式教学:为学生创造沉浸式学习体验
- ht-8 对arrayList中的自定义对象排序( Collections.sort(ListT list, Comparator? super T c))...
- java调用其他方法中的变量_Uipath中调用Python的方法
- wifi管理系统_如何有效选择一款移动考勤管理系统
- 10个宝藏级编程资源,让你省下8K学费不香吗
- 货币转换函数:CURRENCY_CONVERTING_FACTOR
- linux下安装python3及特别注意事项
- SuperMap iDesktopX 数据迁移
- Vmware Tools安装详细步骤
- 计算机论文答辩2分钟演讲稿,关于毕业论文答辩演讲稿9篇
- Ubuntu 声卡解决办法合集
- 坚果云 linux 使用方法,树莓派4B踩坑指南 - (10)安装坚果云(暂时失败)
- 浏览器突然不能上网,DNS问题
- 2013年10月i--q手机下载游戏水果忍者
- [转]脑梗塞的诊治指南
- UBUNTU挂载新的硬盘到文件管理系统中 WRONG FS TYPE, BAD OPTION, BAD SUPERBLOCK ON /DEV/SDB
- 大数据时代:9种从大数据中获取商业价值的方法
- 推荐算法_02_协同过滤算法(ItemCF和UserCF)
- 尝试添加 --skip-broken 来跳过无法安装的软件包 或 --nobest 来不只使用最佳选择的软件包