黑马程序员——Java基础测试题
来源:互联网 发布:动态模拟软件 编辑:程序博客网 时间:2024/06/05 03:17
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
黑马程序员——Java基础测试题
第1题:以下代码哪个是正确的?为什么?
a. byte b = 1 + 1;
b. byte b = 1; b = b + 1;
c. byte b = 1; b = b += 1;
d. byte b = 1; b = ++b;
答:选项a是对的,定义b为byte型,且值为2。
选项b是错的,b+1的结果默认转换为int型,int型不能直接转换为byte型,需强制转换。
应改为:byte b=1;b=(byte)(b+1);
选项c是对的,b+=1包含了一个隐藏的类型转换,相当于 b=(byte)(b+1);
选项d是对的,b=++b也包含了一个隐藏的类型转换。
第2题:创建ArrayList对象,添加5个元素,使用Iterator遍历输出
<span style="font-size:18px;">import java.util.ArrayList; import java.util.Iterator; public class Test2 { public static void main(String[] args) { //创建ArrayList对象 ArrayList<String> al = new ArrayList<String>(); //对al集合添加5个元素 al.add("1"); al.add("2"); al.add("3"); al.add("4"); al.add("5"); //获取迭代器 Iterator<String> it = al.iterator(); //循环迭代器 while(it.hasNext()) //如果有下一个值,进入循环 { //得到迭代器中下一个值 String el = it.next(); //输出结果 System.out.println(el); } } } </span>
第3题:什么情况下适合用UDP协议,什么情况下适合用TCP协议?
答:UDP: (1)UDP是一个无连接协议,传输数据之前源端和终端不建立连接。
(2)由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,
因此一台服务机可同时向多个客户机传输相同的消息。
(3)因无连接,是不可靠的协议。
(4)UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。
(5)UDP是面向报文的。
在有些情况下UDP协议可能会变得非常有用。因为UDP具有TCP所望尘莫及的速度优势。
主要用于视频会议聊天什么的,一些缺少点数据无关紧要,可靠性要求低,传输经济的应用。
TCP: (1)建立连接,形成传输数据的通道。
(2)在连接中进行大数据传输。
(3)通过三次握手完成连接,是可靠协议。
(4)因为必须建立连接,所以效率会稍低。
要用于数据下载,文件传输,可靠性要求高的应用。
第4题:为什么需要配置path,什么时候需要classpath?
答:在java中,用path配置,path则是先找当前目录,之后再去path环境变量里面目录去找.
配置path是为了方便在任何目录下都可以执行所要执行的文件, 当我们运行javac.exe,如果我们没有配置话,
我们要执行javac.exe的时候就需要每次输入其所在的目录, 但是如果我们配置了path则不需要再每次都输入其所在的目录,
此时便可以再任意一个目录下去执行javac.exe。 如果是java文件则用classPath配置.这样就可以再任意目录下去执行这个java文件.
虚拟机在查找class文件时如果没有设置classpath会在当前目录查找.临时配置classpath时,如果设置classPath时写";"的情况下,
那么就会在当前目录下找该文件,之后再在classPath配置目录找要运行的文件,如果不加";"的话,只会在classPath中找。
第5题:编程打印所有的3位质数,质数特点:只能被1和其本身整除
public class Test5{ public static void main(String[] args) { zhishu(); } public static void zhishu() { //判断是否是质数。 //三位质数从100开始到1000结束。 for(int i = 100; i < 1000; i++ ) { int factors = 0; for(int j = 1; j < (i + 2)/2; j++ ) { // 将 i 依次除以 1 到 [(i + 2)/2] // 计算其整除的次数 if((i % j) == 0) factors++; } // 如果只有一次整除,那么该数为素数 if(factors < 2) System.out.println(i+"为质数"); } }}
第6题:数组去重复,例如: 原始数组是{4,2,4,6,1,2,4,7,8},得到结果{4,2,6,1,7,8}
<span style="font-size:18px;">import java.util.Arrays;public class Test6 { public static void main(String[] args) { int arr[]={4,2,4,6,1,2,4,7,8}; System.out.println("原始数组:[4,2,4,6,1,2,4,7,8]"); System.out.println("去重复后的数组:"+Arrays.toString(repeat(arr))); //将去重后数组打印出来 } public static int[] repeat(int [] arr){ boolean flag[] = new boolean[arr.length];/*定义一个和目标数组长度一样的boolean类型,此数组用作标示,用于获取不重复元素的个数的标志位</span><span style="font-size:18px; font-family: Arial, Helvetica, sans-serif;">*/</span>
<span style="font-size:18px;"> for (int i = 0; i < flag.length; i++) {/*遍历数组,查找重复的元素。循环结束后,重复的元素对应的标志位置都为true。</span><span style="font-family: Arial, Helvetica, sans-serif;font-size:18px;">*/</span><span style="font-size:18px;"></span><span style="font-size:18px;"> </span><span style="font-size:18px;font-family: Arial, Helvetica, sans-serif;"> </span><span style="font-size:18px; font-family: Arial, Helvetica, sans-serif;"> if (flag[i]) //如果这个元素对应的标志位已被置为true,则返回循环继续检查下一个元素。</span>
<span style="font-size:18px;"> continue; for (int j = i+1; j < flag.length; j++) { //后边元素和此位置上的元素比较, if (arr[j]==arr[i]) { //如果后边元素和前边元素相同, flag [j]=true; //则此重复元素对应的标志位置为true } } } int count=0; //计数器,记录不重复元素的个数 for (int i = 0; i < flag.length; i++) { //算出不重复元素的个数,记为count, if (!flag[i]) { //标志位依然为false的对应元素即为不重复的元素 count++; } } int index=0; int [] arrNew = new int [count]; //定义新数组,元素个数为count。 for (int i = 0; i < arr.length; i++) { //将所有不重复的元素存入新数组中 if (!flag[i]) { arrNew[index++]=arr[i]; } } return arrNew; //返回数组 }}</span>
第7题:用控制台程序倒着输出九九乘法表;输出结果按下图所示:
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
……
1*3=3 2*3=6 3*3=9
1*2=2 2*2=4
1*1=1
<span style="font-size:18px;">public class Test7 {public static void main(String[] args){print99();//调用打印乘法表函数}public static void print99()//定义一个函数打印乘法表{for(int x=9;x>0;x--) //控制输出的行数 {for(int y=1;y<=x;y++)//控制输出的列数{System.out.print(y+"*"+x+"="+x*y+"\t");}System.out.println();//打印完一行后换行}}}</span>
第8题:定义一个包含私有成员变量和函数的类,再定义一个内部类,在内部类函数中访问外部成员量,
并调用外部函数。在外部类函数中创建内部类对象,调用内部类函数。
public class Test8 { //定义包含私有成员变量和函数 private int x= 1; private void funOut(){ System.out.println("外部函数运行:" + x); }class Inner { // 定义内部类 private int x; Inner(int in){ x = in; } public void funInner() { System.out.println("内部函数运行"); System.out.println("x=" +x); // 内部类访问外部内的成员变量和函数() funOut(); }}public void print() { //在外部类函数中创建内部类对象,调用内部类函数 Inner in = new Inner(x); in.funInner();}public static void main(String[] args) { Test8 t = new Test8(); t.print(); }}
第9题:编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期,
程序计算这一天是星期几,并且计算出是一年中的第几天。
import java.util.Date;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; public class Test9 { public static void main(String[] args) throws ParseException, IOException { System.out.println("Please input a date as yyyy-MM-dd format"); //获取键盘录入 String input = new BufferedReader(new InputStreamReader(System.in)).readLine(); //用给定的模式和日期符号构造 SimpleDateFormat SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); //把输入字符串解释为日期和时间的表示形式,返回指示的时间 Date date = format.parse(input); //定义一个日历对象c Calendar c = Calendar.getInstance(); // 将日历字段设置为给定值 c.setTime(date); System.out.println("Your input date is :" + date.toString()); System.out.println("it's " + c.get(Calendar.DAY_OF_YEAR) + " th day in this year"); } }
- 黑马程序员—JAVA 基础测试
- 黑马程序员—JAVA 基础测试2
- 黑马程序员——Java基础测试题
- 黑马程序员——黑马基础测试
- 黑马程序员—java基础题
- 黑马程序员—JAVA基础
- 黑马程序员—Java基础
- 黑马程序员 基础测试题
- 黑马程序员-基础测试题
- 黑马程序员------黑马基础测试题参考
- 黑马程序员-JAVA基础测试题(1-5)
- 黑马程序员-JAVA基础测试题(6-10)
- 黑马程序员--JAVA基础--测试博客
- 黑马程序员—Java基础:初识Java
- “黑马程序员”基础测试
- 黑马程序员-基础测试
- 黑马程序员——java编程基础
- 黑马程序员——Java编程基础
- 套接字I/O模型
- 安装成功的nginx如何添加未编译安装模块
- 去伪存真看云计算
- 56. Merge Intervals Leetcode
- 1040.Longest Symmetric String
- 黑马程序员——Java基础测试题
- 【Android】GPS定位基本原理浅析
- Oracle OCP认证考试题库解析052-1
- C语言之格式化输出(占位符)
- nginx常用命令
- Hibernate 面对几个错误的解决关键
- Google WiFi 定位的原理 (转)
- 十款不容错过的Swift iOS开源项目
- Ajax执行向php请求的js脚本