1. 介绍一下同步? * 1.什么情况下需要同步 * 当多线程并发, 有多段代码同时执行时, 我们希望某一段代码执行的过程中CPU不要切换到其他线程工作. 这时就需要同步. * 如果两段代码是同步的, 那么同一时间只能执行一段, 在一段代码没执行结束之前, 不会执行另外一段代码. 多个线程必须使用同一个锁对象,要不然锁无效 * 2.同步代码块 * 使用synchronized关键字加上一个锁对象来定义一段代码, 这就叫同步代码块 * 多个同步代码块如果使用相同的锁对象, 那么他们就是同步的 //非静态的同步方法的锁对象是神马? //答:非静态的同步方法的锁对象是this //静态的同步方法的锁对象是什么? //是该类的字节码对象 1. TCP和UDP的特点UDP 1.不需要建立连接; 2.有数据大小限制,每个数据报的大小在限制在64k; 3.无连接,是不可靠协议; 4.速度快。 TCP 1.在连接中进行大数据量传输(数据无限制); 2.通过三次握手完成连接; 3.是可靠协议; 4.必须建立连接,效率会稍低。 2. 网络通讯三要素?端口:每个程序分配一个端口号 ip:给每一个设备分配地址 协议:定义的规则 3. 理解JDK,JRE,JVM都是做什么的? JDK是Java Develop Kit,Java的开发工具包 (JRE+JAVA开发工具) JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。 JVM是Java虚拟机 JDK>JRE>JVM 4. & 和&& 逻辑与: a&b是把a和b都转换成二进制数然后再进行与的运算;&对每一个都判断; 有false则false 短路与: a&&b就是当且仅当两个操作数均为true时,其结果才为true;只要有一个为零,a&&b就为零。 &&具有短路效果,左边是false,右边不执行 5. | 和 || 逻辑或: 有true则true 短路或: ||:如果左边为true,右边不执行 6.
switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 基本数据类型可以接收byte,short,char,int 引用数据类型可以接收枚举(JDK1.5),String字符串(JDK1.7) 7. continue和break两个关键字的区别? break:结束当前循环,循环不再继续 continue:结束本次循环,循环进入下一次 开发过程中如果要使用break或者continue,一般在前面我们都要加一个判断 break 和continue后面不能写语句,一般配合if语句使用 8. 函数的重载(overload)是什么?如何判断两个函数重载? 在同一个类中,函数名相同,参数列表不同(参数类型和个数),与返回值类型无关 9. char型变量中能不能存贮一个中文汉字?为什么? 一个字符占几个字节?(面试题) 可以。因为Java语言采用的是Unicode编码。Unicode编码中的每个字符占用两个字节。中文也是占的两个字节 所以,Java中的字符可以存储一个中文汉字 中文在gbk编码中占2个字节; 中文在utf-8编码中占3个字节; 10. 面向对象思想?(理解) A、什么是面向对象(3点) 1、面向过程是以函数为基础,完成各种操作,强调的是过程,比如C语言 2、面向对象以对象为基础,完成各种操作,强调的是对象和结果 3、面向对象是基于面向过程的 B、面向对象的思想特点 1、是一种更符合人们思考习惯的思想 2、复杂的事情简单化 3、把我们从执行者变成了指挥者 C、举例 1、买电脑 2、洗衣做饭 3、旅游 4、把大象装进冰箱(伪代码体现) 5、买蛋糕
|