应届生面试Java初级开发工程师笔试题

本人今年刚毕业,正在面试初级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));
           }
       }

在这里插入图片描述

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值