本人今年刚毕业,正在面试初级Java开发工程师,在这里写下遇见的一些笔试题,会持续更新到本人找到工作
1.写一个单例模式
首先要知道什么是单例模式?
保证整个系统中一个类只有一个对象的实例,实现这种功能的方式就叫单例模式。
/**
* 单例模式案例
*/
public class Singleton {
//确保对象实例只有一个。
private static final Singleton singleton = new Singleton();
//构造方法私有
private Singleton() {
}
//以静态方法返回实例
public static Singleton getInstance() {
return singleton;
}
}
2.用逆序打印九九乘法表
public static void main(String[] args) {
for(int i=9;i>=1;i--) {
for(int j=i;j>=1;j--) {
System.out.print(i+"*"+j+"="+i*j+" ");
}
System.out.println();
}
}
3.用文件流打印出一个txt文档,文档的内容格式如图
打印的格式为:
name.txt一共有234个字符串
abcd出现过4次
ddd出现过3次
其余的出现了1次
4.利用socket给服务器端发送一个“你好”,服务器ip地址为192.168.254.254,端口为8080.
public class socket {
public static void main(String[] args) throws IOException {
Socket s = new Socket("192.168.254.254",8080);//1,建立socket服务.指定要连接主机和端口.
OutputStream out = s.getOutputStream();//2,获取socket流中的输出流.将数据写到该流中.通过网络发送给 服务端.
out.write("你好".getBytes());//getBytes()是将一个字符串转化为一个字节数组
//write(byte[] b)
//将 b.length 个字节从指定的 byte 数组写入此输出流。
InputStream in = s.getInputStream();//3,获取socket流中的输入流,将服务端反馈的数据获取到,并打印.
byte[] buf = new byte[1024];
int len = in.read(buf);//int read(byte[] b)
// 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。
//参数:b - 存储读入数据的缓冲区。
//返回:读入缓冲区的总字节数;如果因为已经到达流末尾而不再有数据可用,则返回 -1。是阻塞式方法
System.out.println(new String(buf,0,len));
//String(byte[] bytes, int offset, int length)
//通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String。
s.close();
}
}
5,键盘输入一句英语,把单词的顺序逆序打印出来,但是单词内部的字母顺序不变,同时如果句子中有多个空格,在输出的时候也当成一个空格,例如键盘输入 who are (此处有多个空格)you
输出结果为 you are who 每个单词之间只有一个空格
public class revseString {
public static void main(String[] args) {
System.out.println("please input");
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
new revseString().reflectStr(str);
}
public void reflectStr(String str){
if(str==null||str.length()<1){
System.out.println("你输入的为空白");
}
ArrayList list = new ArrayList();
String[] split = str.split("\s+");
for (int i=split.length-1;i>=0;i--) {
list.add(split[i]);
}
for (int i=0;i<list.size();i++){
if (i!=list.size()-1){
System.out.print((String) list.get(i)+" ");
}else {
System.out.print((String) list.get(i));
}
}