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、买蛋糕 |