黑马程序员技术交流社区
标题:
基础测试题分享
[打印本页]
作者:
ADS1993
时间:
2015-2-2 21:04
标题:
基础测试题分享
做完这些题,感觉压力很大,好多概念都模糊不清,还得继续努力。
package com.itheima;
import java.util.ArrayList;
import java.util.Iterator;
/**
* 第2题:创建ArrayList对象,添加5个元素,使用Iterator遍历输出
* @author 刘云祥
*
*/
public class Test2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<String> list= new ArrayList<String>();//创建 ArrayList 集合
list.add(new String("第一个元素")); //向集合中添加元素
list.add(new String("第二个元素"));
list.add(new String("第三个元素"));
list.add(new String("第四个元素"));
list.add(new String("第五个元素"));
Iterator<String> iterators = list.iterator();//获取 Iterator 对象
while (iterators.hasNext()) //判断 ArrayList 集合中是否存在下一个元素
{
Object obj = iterators.next(); //取出 ArrayList 集合中的元素
System.out.println(obj); //打印到控制台
}
}
}
复制代码
package com.itheima;
import java.util.Scanner;
/**
* 第3题:求斐波那契数列第n项,n<30,斐波那契数列前10项为 1,1,2,3,5,8,13,21,34,55
* @author 刘云祥
*
*/
public class Test3 {
public static int fib(int n){ //创建一个 递归 方法
if(n==1 || n==2) return 1; //递归出口
if(n>2)
return fib(n-2)+fib(n-1); //递归调用
return -1;
}
public static void fibPrint() //创建一个 控制台 打印 方法
{
Scanner in=new Scanner(System.in);//扫描从控制台输入的字符
System.out.print("请输入项数:");
int n=in.nextInt(); //输入数字赋值给n
if(n<30){
System.out.println("斐波那契数列第"+n+"项为:"+fib(n));//调用 fib 方法 并打印 第n 项
}
else{
System.out.println("请输入小于30的整数"); }
in.close(); //关闭
}
public static void main(String[] args) {
// TODO Auto-generated method
fibPrint();//调用 fibPrint() 方法
}
}
复制代码
package com.itheima;
/**
* 第5题: 数组去重复,例如: 原始数组是{4,2,4,6,1,2,4,7,8},得到结果{4,2,6,1,7,8}
* @author 刘云祥
*
*/
public class Test5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] arr = {4,2,4,6,1,2,4,7,8};//创建并初始化数组
for(int i = 0;i < Rmdistinct(arr).length; i++){//遍历数组
System.out.print(Rmdistinct(arr)[i]+" ");//调用 并打印 数组去重复 后 的值
}
}
public static int[] Rmdistinct(int[] arr){ //创建一个 方法 用以取出 数组中的重复 元素
int length=1; //定义一个 int 型变量
boolean Judgement=false; // 定义一个 布尔型 变量
for(int i=1;i<arr.length;i++){ //对数组 进行 遍历
for(int j=0;j<length;j++){ //对数组中的元素 进行 对比
if(arr[i]==arr[j]){ //比较数组中 重复的元素
Judgement=true;
}
}
if(!Judgement){ //如果数组某一元素对比不重复 则 进入
arr[length]=arr[i]; //替换元素为当前值
length++; //长度自加一
}
Judgement=false; //复位变量值
}
int[] newArr=new int[length]; //创建一个整型数组
System.arraycopy(arr, 0, newArr, 0, length); //复制指定长度数组
return newArr; //返回新的数组元素
}
}
复制代码
package com.itheima;
/**
* 写出以下代码执行结果,分析为什么?(没有分析结果不得分)
* public class Test {
public static void main(String[] args) {
String s = "abc";
s.substring(1);
s.replace("bc", "xyz");
System.out.println(s);
String value = new String ("abc");
System.out.println(s == value);
}
}
* 输出结果:
* abc
* false
* 分析:
*
* 字符串是常量,一般是存放在字符串常量池中,一旦创建就无法改变,
* 而且 s.substring(1);和 s.replace("bc", "xyz");
* 只是对字符串 进行操作,却没有改变 s 中字符串
*
* Java把内存分成两种,一种叫做栈内存,一种叫做堆内存
* 一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配
* 堆内存用于存放由new创建的对象和数组
* ==操作比较的是两个变量的值是否相等,
* 对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
* 由于 s 与 value 所指向的存放 位置 不同 所以 地址 也不相同
* @author 刘云祥
*
*/
public class Test6 {
public static void main(String[] args) {
String s = "abc";//栈中开辟一块空间存放引用s,s指向池中String常量"abc",
s.substring(1);///从位置1处截取s字符串并返回,但是没有被变量接受。
s.replace("bc", "xyz");//返回一个新的字符串,并用字符串“xyz”代替原字符串的“bc”,也没有被变量接受。
System.out.println(s); //打印 输出
String value = new String ("abc");// 栈中开辟一块空间存放引用value;
//堆中开辟一块空间存放一个新建的String对象"abc";
System.out.println(s == value);//打印s是否等于value
}
}
复制代码
package com.itheima;
import java.util.Scanner;
/**
* 第9题: 写一个正则表达式,可以匹配尾号5连的手机号。规则: 第1位是1,第二位可以是数字3458其中之一,
* 后面4位任意数字,最后5位为任意相同的数字。例如:18601088888、13912366666
* @author 刘云祥
*
*/
public class Test9 {
public static void main(String[] args) {
String regex = "1[3|4|5|8]{1}[0-9]{4}(\\d{1})\\1{4}";
System.out.println("输入需要匹配的号码");
Scanner str = new Scanner(System.in);
String s1 = str.next();
char cchar[] = s1.toCharArray();
String s2 = new String(cchar);
if(s2.matches(regex)){
System.out.println("匹配成功!");
}
else{
System.out.println("匹配失败!");
}
str.close();
}
}
复制代码
package com.itheima;
import java.net.*;
import java.io.*;
/**
* 第10题:使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。
* 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。
* @author 刘云祥
* 先运行服务端
*/
public class TestA //服务端
{
public static void main(String[] args) throws IOException
{
ServerSocket ss = new ServerSocket(30000);//创建一个ServerSocket,用于监听客户端Socket的连接请求
Socket s = ss.accept();//取得连接的Socket对象
BufferedReader server_buf=new BufferedReader(new InputStreamReader(s.getInputStream()));//输入流
String str=server_buf.readLine();
System.out.println("服务端接受到字符串为:");
System.out.println(str);
PrintStream pri=new PrintStream(s.getOutputStream());//对输出流进行 包装
System.out.println("将字符串反转后发送给客户端...");
pri.println(new StringBuffer(str).reverse());
//关闭输出流
pri.close();
s.close();
ss.close();
}
}
复制代码
package com.itheima;
import java.net.*;
import java.util.Scanner;
import java.io.*;
/**
* 第10题:使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。
* 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。
* @author 刘云祥
* 先运行服务端
*/
public class TestA1 //客户端
{
public static void main(String[] args) throws IOException
{
Socket socket = new Socket(InetAddress.getLocalHost(), 30000);//创建一个ServerSocket,
BufferedReader br = new BufferedReader( new InputStreamReader(socket.getInputStream()));//输入流
PrintStream pri=new PrintStream(socket.getOutputStream());//输出
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str=sc.nextLine();
System.out.println("正在向服务器发送字符串...");
pri.println(str);
System.out.println("接受来自服务器反转的字符串...");
System.out.println(br.readLine());
//关闭
sc.close();
br.close();
socket.close();
}
}
复制代码
作者:
淡看流光行远
时间:
2015-2-2 21:41
这是什么基础题?
作者:
ADS1993
时间:
2015-2-2 21:55
淡看流光行远 发表于 2015-2-2 21:41
这是什么基础题?
就是自荐信 通过之后 的 基础测试
作者:
466273082
时间:
2015-2-2 22:22
路过的,先看看
作者:
Jaybor
时间:
2015-2-2 23:14
这些题还是挺考基本功的
作者:
ykw0919
时间:
2015-2-3 09:03
感谢楼主分享
作者:
feiying16hao
时间:
2015-2-3 10:29
努力学习中
作者:
淡看流光行远
时间:
2015-2-3 21:43
ADS1993 发表于 2015-2-2 21:55
就是自荐信 通过之后 的 基础测试
哦,知道了,谢谢
作者:
淡看流光行远
时间:
2015-2-3 21:44
ADS1993 发表于 2015-2-2 21:55
就是自荐信 通过之后 的 基础测试
哦,知道了,谢谢
作者:
丶人世百态
时间:
2015-2-3 22:49
容我慢慢的看一看
作者:
d342784178
时间:
2015-2-4 08:55
回去好好复习下吧
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2