1、字节流的处理方式
字节流处理的是计算机最基本的单位byte,它可以处理任何数据格式的数据。主要的操作对象就是byte数组,通过read()和write()方法把byte数组中的数据写入或读出。
2、字符流的处理方式
字符流是由字节流包装而来,它的输入和输出流类型包括StringReader和StringWriter、BufferedReader和BufferedWriter。字符流API的基本使用思路有以下步骤:
(1)获取输入或输出流对象。可以从File得到,也可以从网络或其他地方得到。
(2)根据特定的字符格式创建InputStreanReader或InputStreamWriter对象。
(3)使用read()或readLine()方法,得到数据。或使用write()或print()方法进行字符输出。
(4)最后关闭reader或writer。
3、什么是序列化?
序列化本质上就是把对象内存中的数据按照一定的规则,变成一系列的字节数据,然后再把这些字节数据写入到流中。而反序列化的过程相反,限度去字节数据,然后再重新组装成Java对象。
所有需要进行序列化的类,都必须实现Serializeable接口,必要时还需要提供静态的常量serialVersionUID。
4、如何序列化和反序列化一个Java对象?
对于对象的输出和输入,Java的I/O体系中主要提供了ObjectOutputStream和ObjectInputStream两个类以供开发者使用,它们的基本使用思路有以下步骤。
(1)让需要序列化的类实现java.io.Serializable接口;
(2)提供静态的long型的常量serialVersionUID;
(3)如果是序列化对象,则用一个输出流创建一个ObjectOutputStream对象,然后调用writeObject()方法;
(4)如果是反序列化,首先使用一个输入流创建一个ObjectInputStream对象。然后调用readObject(0方法,得到Object类型的对象。最后再做类型的强制转换;
(5)最后关闭流。
5、什么是多线程?
线程是进程中的一个执行单元,又称为轻量级进程,它和进程一样拥有独立的执行控制,而操作系统负责调度;
而多线程是这样一种机制:它允许在程序中并发执行多个指令流,每个指令流都称为一个线程。多线程机制下的线程彼此间互相独立,比较容易共享数据,通过并发执行的方式来提高程序的效率和性能。
6、解释进程和线程的区别
进程和线程的区别主要包括:
(1)线程的划分尺度小于进程,线程隶属于某个进程;
(2)进程是程序的一种动态形式,是CPU、内存等资源占用的基本单位,而线程是不能独立的占有这些资源的;
(3)进程之间相互独立,通信比较困难,而线程之间共享一块内存区域,通信比较方便;
(4)进程在执行过程中,包含比较固定的入口、执行顺序和出口,而线程的这些过程会被应用程序所控制。
7、如何让一个类成为线程类?
让一个类成为线程类的方式有两种,一个是实现了java.lang.Runnable接口,另一个是继承自java.lang.Thread类。
8、解释Runnable接口与Thread类的区别
Runnable接口与Thread类的区别主要包括一下几个方面:
(1)线程类继承自Thread则不能继承自其它类,而Runnable接口可以;
(2)线程类继承自Thread相对于Runnable来说,使用线程的方法更方便一些;
(3)实现Runnable接口的线程类的多个线程,可以更方便的访问同意变量,而Thread类则需要内部类来进行替代。
9、如何启动一个线程?
继承自Thread类的线程类,可以通过new关键字创建一个线程对象以后,执行start()方法开始一个线程。而实现了Runnable接口的线程类,需要用它的对象实例,作为Thread类构造方法的参数,创建一个Thread对象,然后调用start()方法开始一个线程。
10、如何用synchronized来让线程同步?
sychronized关键字代表要为某一段代码加上一个同步锁,这样的锁是绑定在某一个对象上边的。如果是同步代码块,需要为该synchronized关键字提供一个对象的引用;如果是同步方法,只需要加一个sychronized关键字修饰。
sychronized为某段代码加上锁以后,某个线程进入该段代码之前,首先需要检查该锁是否被占用,如果没有被占用则继续执行;如果已经被占用,则需要等到该锁被释放以后才能继续执行。其中,线程执行完该段代码就是释放锁的标志。
11、如何使用java的线程池?
java提供了java.util.concurrent.ThreadPoolExecutor类来使用线程池,通过它构造的对象,可以很容易地管理线程,并把线程代码与业务代码进行分离。

学习面试题Day06的更多相关文章

  1. 深度学习面试题29:GoogLeNet(Inception V3)

    目录 使用非对称卷积分解大filters 重新设计pooling层 辅助构造器 使用标签平滑 参考资料 在<深度学习面试题20:GoogLeNet(Inception V1)>和<深 ...

  2. 深度学习面试题27:非对称卷积(Asymmetric Convolutions)

    目录 产生背景 举例 参考资料 产生背景 之前在深度学习面试题16:小卷积核级联卷积VS大卷积核卷积中介绍过小卷积核的三个优势: ①整合了三个非线性激活层,代替单一非线性激活层,增加了判别能力. ②减 ...

  3. 深度学习面试题13:AlexNet(1000类图像分类)

    目录 网络结构 两大创新点 参考资料 第一个典型的CNN是LeNet5网络结构,但是第一个引起大家注意的网络却是AlexNet,Alex Krizhevsky其实是Hinton的学生,这个团队领导者是 ...

  4. Java学习之面试题整理

    1,java 基本数据类型有几种?哪几种?(面试题) 8种 byte short int long float double char boolean 2,int类型是几个字节?(面试题) 4字节 3 ...

  5. 深度学习面试题26:GoogLeNet(Inception V2)

    目录 第一层卷积换为分离卷积 一些层的卷积核的个数发生了变化 多个小卷积核代替大卷积核 一些最大值池化换为了平均值池化 完整代码 参考资料 第一层卷积换为分离卷积 net = slim.separab ...

  6. 深度学习面试题25:分离卷积(separable卷积)

    目录 举例 单个张量与多个卷积核的分离卷积 参考资料 举例 分离卷积就是先在深度上分别卷积,然后再进行卷积,对应代码为: import tensorflow as tf # [batch, in_he ...

  7. 深度学习面试题24:在每个深度上分别卷积(depthwise卷积)

    目录 举例 单个张量与多个卷积核在深度上分别卷积 参考资料 举例 如下张量x和卷积核K进行depthwise_conv2d卷积 结果为: depthwise_conv2d和conv2d的不同之处在于c ...

  8. 深度学习面试题21:批量归一化(Batch Normalization,BN)

    目录 BN的由来 BN的作用 BN的操作阶段 BN的操作流程 BN可以防止梯度消失吗 为什么归一化后还要放缩和平移 BN在GoogLeNet中的应用 参考资料 BN的由来 BN是由Google于201 ...

  9. 深度学习面试题20:GoogLeNet(Inception V1)

    目录 简介 网络结构 对应代码 网络说明 参考资料 简介 2014年,GoogLeNet和VGG是当年ImageNet挑战赛(ILSVRC14)的双雄,GoogLeNet获得了第一名.VGG获得了第二 ...

随机推荐

  1. hdu 5343 MZL's Circle Zhou SAM

    MZL's Circle Zhou 题意:给定两个长度不超过a,b(1 <= |a|,|b| <= 90000),x为a的连续子串,b为y的连续子串(x和y均可以是空串):问x+y形成的不 ...

  2. ZOJ 1074 最大子矩阵和

    Description Given a two-dimensional array of positive and negative integers, a sub-rectangle is any ...

  3. CSS 将按钮转成超链接样式

    一.将按钮转成超链接样式 .GoStyle    {         color: #0c5fc4;                   background-color: #FFFFFF;      ...

  4. 【socket】一分钟理清 socket udpsocket tcpsocket tcplistener TCPClient和 UDPClient

    socket 套接字接口是各种语言tcp udp的网络操作的基础. 直接用socket 对象开发 可以选择 udpsocket  或者 tcpsocket ,两者在使用上仅一些方法和参数不同,所有的底 ...

  5. mysql 连接丢失错误解决(转载)

    1.1 错误信息: Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet succes ...

  6. TWaver3D入门探索——3D拓扑图之人在江湖

    俗话说,有人的地方就有江湖,江湖就是帮派林立错综复杂的关系网.今天我们就来展示这样一个小小的江湖. 故事背景 崇祯末年,民不聊生,烽烟四起-- 江湖都是有背景的,我们的3D江湖也需要一个背景.江湖就是 ...

  7. [转]用Python做一个自动生成读表代码的小脚本

    写在开始(本片文章不是写给小白的,至少你应该知道一些常识!) 大家在Unity开发中,肯定会把一些数据放到配置文件中,尤其是大一点的项目,每次开发一个新功能的时候,都要重复的写那些读表代码.非常烦.来 ...

  8. WCF获取客户端IP和端口

    //提供方法执行的上下文环境 OperationContext context = OperationContext.Current; //获取传进的消息属性 MessageProperties pr ...

  9. Deep Learning and the Triumph of Empiricism

    Deep Learning and the Triumph of Empiricism By Zachary Chase Lipton, July 2015 Deep learning is now ...

  10. PAT-乙级-1040. 有几个PAT(25)

    1040. 有几个PAT(25) 时间限制 120 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CAO, Peng 字符串APPAPT中包含了两个单 ...