首页 > 编程语言 >Java面试题Day06

Java面试题Day06

时间:2023-01-09 14:55:49浏览次数:42  
标签:面试题 Java 隔离 并发 级别 Day06 UDP 事务 数据

1.如何将字节流转为字符流?

InputStreamReader是字节流通向字符流的桥梁

BufferedReader in = new BufferedReader(new InputStreamReader(System.in))

OutputStreamWriter 是字符流通向字节流的桥梁

Writer out = new BufferedWriter(new OutputStreamWriter(System.out));

2.说下事务的ACID

原子性(Atomicity):原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生,

一致性(Consistency):事务前后数据的完整性必须保持一致.

隔离性(Isolation):事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离,

持久性(Durability):持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响,

3.事务有哪几种隔离级别呢?

读未提交(read uncommitted)

另一个事务修改了数据,但尚未提交,而本事务中的select会读到这些未被提交的数据脏读.

读已提交(read committed)RC

事务能够看到的数据都是其他事务已经提交的修改,也就是保证不会看到任何中间性状态,当然脏读也不会出现,

可重复读(repeatable read)RR

保证同一个事务中多次读取的数据是一致的,这是MySQL InnoDB引擎的默认隔离级别.

串行(serializable)

并发事务之间是串行化的,通常意味着读取需要获取共享读锁.

更新需要获取排他写锁,如果SQL使用WHERE语句,还会获取区间锁,是最高的隔离级别.

4.事务的并发?什么是脏读?事务隔离级别,每个级别会引发什么问题?MySQL默认是哪个级别?

事务的并发问题

- 脏读 :脏读是指在一个事务处理过程中读取了另一个事务未提交的数据.

- 不可重复读,事务A多次读取同一数据,事务B在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果因此本事务先后两次读到的数据结果会不一致.

- 幻读:可重复读的隔离级别解决了不可重复读的问题,保证了同一个事务里.查询的结果都是事务开始时的状态(一致性).

**MySQL默认的事务隔离级别为repeatable-read(可重复读)**

MySql支持四种事务隔离级别

事务隔离的级别要得到底层数据库引擎的支持,而不是应用程序或者框架支持.

隔离级别越高,越能保证数据的完整性和一致性,但是对并发性能的影响也就越大,

可以优先考虑把数据库系统的隔离级别设为Read Committed,它能够避免脏读取,而且有较好的并发性能,

尽管他会导致不可重复读,幻读这些并发问题,在可能出现这类问题的个别场合,可以由应用程序采用悲观锁或乐观锁来控制.

5.名词解释 IP协议 TOC协议 UDP

IP协议 分组交换协议 不可靠传输 一个数据包自动分成若干小的数据包然后通过网络进行传输

TCP协议 传输控制协议 可靠协议 建立在IP协议之上, 先建立连接,然后才能传输数据,传输完成后断开连接,支持双向通信,双方可以同时传输和接收数据,

UDP 数据报文协议,不面向连接,不可靠传输,传输效率高,通常用来传输视频等能容忍丢失部分数据的文件,

6.TCP与UDP比较

TCP:面向连接的协议,数据传输之前必然要建立连接,

UDP:每个数据报中都给出了完整的地址信息,无需要建立发送方和接收方的连接

 

TCP:传输数据大小限制,双方的socket就可以按统一的格式传输大的数据.

UDP:UDP传输数据时是有大小限制的,每个被传输的数据报必须限定在64KB之内

 

TCP:可靠协议,确保完全正确发送数据.

UDP:不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方,

7.Socket

网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向连接的一端称为一个Socket.

Socket通常用来实现客户方和服务方的连接,一个Socket由一个Ip地址和一个端口号唯一确定,

在Java环境下,Socket编程主要是指基于TCP/IP协议的网络编程,

8.异常的处理

声明:其实就是程序中遇到异常时,自己不处理,交给其它程序处理throw(在使用throw抛出异常代码的后面,不能书写任意代码)

捕获:其实就是在程序中遇到异常时,不会交给其他程序处理,自己处理try,catch,finally(使用try...catch...finally结构,catch中抛出异常后面如果有其他语句,先执行finally语句再去执行catch中的其他语句)

9.定义异常处理时,什么时候定义try,什么时候定义throws呢?

功能内部如果出现异常,如果内部可以处理,就用try;

如果功能内部处理不了,就必须声明出来,让调用者处理.

10.请写出你最常见的五个runtime excption.

NullPointerException(空指针异常)

ArrayIndexOutOfBoundsException(数组索引越界异常)

ClassCastException(类型转换异常)

ArithmeticException(数字计算异常)

NumberFormatException(数字格式化异常)

标签:面试题,Java,隔离,并发,级别,Day06,UDP,事务,数据
From: https://www.cnblogs.com/carney/p/17036694.html

相关文章

  • 倒排索引的 JAVA 简单实现
      倒排索引的简单JAVA实现,当玩具其实都很粗糙,简单实现下原理:publicclassIntertedIndex{//倒排索引privateMap<String,List<String>>indexMa......
  • Java内存区域有哪些构成?
    目录前言Java内存区域程序计数器虚拟机栈本地方法栈堆方法区字符串常量池运行时常量池直接内存小结作者:小牛呼噜噜|https://xiaoniuhululu.com计算机内功、JAVA底层......
  • javascript将文本转语音功能
    通过jiavascript将文本内容转化为语音播放,代码如下:<body><buttononclick="start()">点击</button><script>vartext='语音输入开始'var......
  • java根据xml节点地址获取指定节点内容
    备好几个前同事问过怎么获取xml指定节点内容后,终于决定写个工具类,今天特地分享给大家,写的不好,不要喷maven依赖包<dependency><groupId>dom4j</groupId><artifactId>do......
  • java文件夹和文件
    本文主要讲述java如何创建文件夹和文件题目:指定路径,判断当前路径是否有目标文件夹,如果没有,则创建;如果有,在目标文件夹下创建目标文件【txt文件】,并使用转换流+处理流写入......
  • java的读取和写入properties配置文件
    本文主要讲述java读取和写入properties文件操作一.介绍Properties类  Properties用于读取和写入Xx.properties文件,获取k-v二.Properties类的读取和写入Propertie......
  • Java中Static作用
    类成员:实例属性、实例方法、静态属性、静态方法、构造方法实例与静态的区分:看是否被static修饰,被static修饰的就是静态的,没有就是实例的在java之中可以使用static声明属......
  • Java面试的一些面试题
    ​10<<2=?tip:10的二进制为1010,左移两位即:101000,换算为十进制为2的5次方加上2的三次方等于40答:401.dr-xr-xr-r解释一下权限的含义tip:参考:Liunx学习总结(四)--文件的......
  • Java的this关键字和构造方法与匿名对象
    this关键字的作用 1.表示类中的属性2.可以使用this调用本类的构造方法3.this表示当前对象 1.1this调用本类中的属性classPerson{privateStringname;//姓......
  • java解决跨域问题
    什么是跨域 1)、协议不同2)、域名不同(IP地址不同)3)、端口号不同跨域是指一个页面想获取另一个页面中的资源,如果这两个页面的协议、域名、子域名、端口不同,或者两个页面......