新华三2018校园招聘笔试面试题学习
2017-09-27 11:29
393 查看
编程题学习:
7进制转10进制:
public class Text5 { public static void main(String[] args) { int num=14; int sum=0; int i=0; while(num>0){ int temp=num%10; num=num/10; sum+=temp*Math.pow(7, i); i++; } System.out.println(sum); } }用内部Integer.parseInt(str,7)转换:
public class Text5 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()){ String str=sc.nextLine(); System.out.println(Integer.parseInt(str,7)); } } }附带10进制转7进制算法题:
public class Text5 { public static void main(String[] args) { int num=111; StringBuffer sb = new StringBuffer(); while(num>0){ sb.append(num%7); num/=7; } int a=Integer.parseInt(sb.reverse().toString()); System.out.println(a); } }
随机生成密码算法题:
import java.util.Random; import java.util.Scanner; //随机生成密码算法题: public class Text5 { public static void main(String[] args) { Random r=new Random(); Scanner sr = new Scanner(System.in); while(sr.hasNext()){ String str=sr.nextLine(); int len=str.length(); System.out.println(getPassword(r, str, len)); } } private static String getPassword(Random r, String str, int len) { String password=""; if(str.length()==0||str==" "){ System.out.println(str); }else{ for(int i=0;i<len;i++){ int temp=r.nextInt(123); if(temp>=0&&temp<10){ password+=temp; }else if((temp>=65&&temp<=90)||(temp>=97&&temp<=122)){ char ch=(char)temp; password+=ch; }else{ int current=r.nextInt(10); password+=current; } } } return password; } }
面试题学习:
给你一个char型数组,执行数组.toString()。其返回的是什么?
返回该对象的字符串表示。通常,toString方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。说一说Java中的NIO。
在非阻塞IO(NOnblocking IO,NIO)出现之前,Java是通过传统的Socket来实现基本的网络通信的。即阻塞式的网络通信,用的是IO的Stream类,如果客户端还没有对服务端发起连接请求,那么accept就会阻塞(阻塞是指暂停一个线程的执行以等待某个条件的发生,例如某资源就绪)。如果连接成功,当数据还没有准备好时,对read调用同样阻塞。这种方式采用多线程时由于阻塞会导致大量线程进行上下文切换,使得程序的运行效率非常低下。因此可以将NIO 中的Channel同传统IO中的Stream来类比,但是要注意,传统IO中,Stream是单向的,比如InputStream只能进行读取操作,OutputStream只能进行写操作。而Channel可以被看成是一个双向的非阻塞通道,在通道的两边既可用来进行读操作,又可用来进行写操作。
NIO中的几个基础概念:
1.Channel (通道)
2.Buffer (缓冲区)
3.Selector (选择器)
Buffer(缓冲区),是NIO中非常重要的一个东西,在NIO中所有数据的读和写都离不开Buffer。比如上面的一段代码中,读取的数据时放在byte数组当中,而在NIO中,读取的数据只能放在Buffer中。同样地,写入数据也是先写入到Buffer中。
NIO中最核心的一个东西:Selector。它是NIO中最关键的一个部分,它可以处理多个事件源,其主要作用就是用来轮询每个注册的Channel,一旦发现Channel有注册的事件发生,便获取事件然后进行处理。这种通过轮询的方式在处理多线程请求时也需要上下文的切换,而采用多线程的实现方式在线程之间切换时需要上下文的切换,同时也需要进行压栈与弹栈操作。因此,NIO有较高的执行效率。
与传统的Socket相比,由于NIO采用了非阻塞的方式,在处理大量并发请求时,使用NIO要比使用Socket效率高出很多。
有return的情况下try catch finally的执行顺序
可以参考博客:http://www.cnblogs.com/superFish2016/p/6687549.htmlhashmap是线程安全的吗?同时执行两个put操作线程安全吗?
hashmap是线程不安全的,HashMap在并发执行put操作时会引起死循环,导致CPU利用率接近100%。因为多线程会导致HashMap的Node链表形成环形数据结构,一旦形成环形数据结构,Node的next节点永远不为空,就会在获取Node时产生死循环。Swicth 里面可以有String类型的参数吗?
在jdk 7 之前,switch 只能支持 byte、short、char、int 这几个基本数据类型和其对应的封装类型。switch后面的括号里面只能放int类型的值,但由于byte,short,char类型,它们会 自动 转换为int类型(精度小的向大的转化),所以它们也支持。注意,对于精度比int大的类型,比如long、float,doulble,不会自动转换为int,如果想使用,就必须强转为int如(int)float;
jdk1.7后,整形,枚举类型,boolean,字符串都可以。为什么jdk1.7后又可以用string类型作为switch参数呢?
其实,jdk1.7并没有新的指令来处理switch string,而是通过调用switch中string.hashCode,将string转换为int从而进行判断。
Java中类的访问权限有哪几种?private 和default有什么区别?
作用域 | 当前类 | 同一包(package) | 子孙类 | 其他包 |
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |
相关文章推荐
- [面试] 各大IT公司校园招聘程序猿笔试、面试题集锦
- 各大IT公司校园招聘程序猿笔试、面试题集锦
- 各大IT公司校园招聘程序猿笔试、面试题集锦
- [面试] 各大IT公司校园招聘程序猿笔试、面试题集锦
- 各大IT公司校园招聘程序猿笔试、面试题集锦
- 各大IT公司校园招聘程序猿笔试、面试题集锦
- 一步一个脚印笔试面试题(二)—google2013年校园招聘笔试题
- 微盟2018校园招聘面试题学习
- 2012IT公司校园招聘笔试面试题
- 【面试题】数码视讯---2013校园招聘---笔试题
- 2012IT公司校园招聘笔试面试题
- 各大IT公司校园招聘程序猿笔试、面试题集锦
- 仔仔细细做面试题---google2013校园招聘笔试题
- 深度学习算法研发工程师笔试题(百度2014校园招聘)
- 广联达2018校园招聘面试题学习
- [置顶] 各大IT公司校园招聘程序猿笔试、面试题集锦
- 各大IT公司校园招聘程序猿笔试、面试题集锦
- 【面试题】2013亚马逊校园招聘--在线笔试题
- 各大IT公司校园招聘程序猿笔试、面试题集锦
- 面试珠玑 各大IT公司校园招聘程序猿笔试、面试题集锦