自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 2020-12-30

Java聊天室系统一、 课程设计要求与目的目的:编写一个局域网Java聊天室系统,掌握Java网络通信、多线程、IO文件操作等高级应用编程技能。要求:以课本第15章 Java网络通信例15.3、15.4的源代码为基础,编写一个小型Java聊天室系统。完成如下功能:1.多客户端模式下,实现客户与客户的单独通信,要求信息通过服务器中转2.端到端的通信,实现并行通信模式(不再是你说一句,我说一句,一端的信息发送不受另一端的影响)3.实现端到端的文件传输二、设计我这里将功能1 2和3分开来写,分为

2020-12-31 15:53:31 324

原创 2020-12-21

阅读HashMap、TreeMap的源代码,叙述其实现原理遍历HashMap:1、遍历既需要key也需要value的时候:keySet与entrySet方法的性能差异取决于key的具体情况,如复杂度(复杂对象)、离散度、冲突率等。换言之,取决于HashMap查找value的开销。entrySet一次性取出所有key和value的操作是有性能开销的,当这个损失小于HashMap查找value的开销时,entrySet的性能优势就会体现出来。例如上述对比测试中,当key是最简单的数值字符串时,keySet可

2020-12-21 20:07:54 143

原创 2020-12-21

编写程序测试Java集合框架中各种常用类的基本操作1.add(E e)package collection; import java.util.ArrayList;import java.util.Collection; public class Demo2_Collection { @SuppressWarnings({"rawtypes", "unchecked" }) // 不对原始类型检查,不加IDE上报黄色警告波浪线 public static void main

2020-12-21 20:04:24 124

原创 2020-12-17

Java对文件的读写分别提供了哪些支持?本地文件读写编程的基本过程为:① 生成文件流对象(对文件读操作时应该为FileInputStream类,而文件写应该为FileOutputStream类);② 调用FileInputStream或FileOutputStream类中的功能函数如read()、write(int b)等)读写文件内容;③ 关闭文件(close())。3 PipedInputStream/PipedOutputStream:用于管道输入输出(将一个程序或一个线程的输出结果直接连

2020-12-17 00:31:10 195

原创 2020-12-17

Java的File类表示什么?有什么作用?表示:File类主要是JAVA为文件这块的操作(如删除、新增等)而设计的相关类File类的包名是java.io,其实现了Serializable, Comparable两大接口以便于其对象可序列化和比较。作用:直接处理bai文件和文件系统。File类没有指定信息怎样从文件读取或向文件存储;它描述了文件本身的属性。File对象用来获取或处理与磁盘文件相关的信息,例如权限,时间,日期和目录路径。此外,File还浏览子目录层次结构。很多程序中文件是数据的根源和

2020-12-17 00:18:13 93

原创 2020-12-17

什么是对象的序列化和反序列化?Java对此提供了哪些支持?序列化:把Java对象转换为字节序列的过程。反序列化:把字节序列恢复为Java对象的过程。支持:使用ObjectInputStream类和ObjectOutputStream类...

2020-12-17 00:13:21 99

原创 2020-12-17

Java中的过滤流(流的装配)有什么作用?请举例说明常用的过滤流。过滤流: BufferedInputStream和BufferedOutputStream, 缓存作用,用于装配文件磁盘、网络设备、终端等读写开销大的节点流,提高读写性能。...

2020-12-17 00:07:09 133

原创 2020-12-17

字节流与字符流的转化是怎样的?Java对此提供了哪些支持?输入字节流转为字符流需要用到inputstreamReader的构造方法:InputStreamReader(InputStream in)如:InputStreamReader ins = new InputStreamReader(System.in);InputStreamReader ins = new InputStreamReader(newFileInputStream(“test.txt”));输出字符流转为字节流用到O

2020-12-17 00:00:22 167

原创 2020-12-16

字节流InputStream和OutputStream的子类分别有哪些?请举例说明其使用场景。与其对应的字符流分别有哪些?

2020-12-16 23:42:08 132

原创 2020-12-16

Java中流的分类有哪些流的三种分类方式1.按流的方向分为:输入流和输出流2.按流的数据单位不同分为:字节流和字符流3.按流的功能不同分为:节点流和处理流

2020-12-16 22:40:50 93

原创 2020-11-18

利用URLConnetction对象编写程序返回某网站的首页,并将首页内容存放到文件当中。import java.io.*;import java.net.*;public class html { public static void main(String[] args) throws IOException { URL url= new URL("https://www.baidu.com/"); URLConnection con = url.op

2020-11-18 23:01:06 98

原创 2020-11-18

Socket编程时,目的地址和端口号需要在什么地方指出?使用数据报时,又在什么地方指出?创建客户端时;构造DatagramPacket时

2020-11-18 22:55:12 118

原创 2020-11-17

在Java语言当中,网络编程是从协议的什么层次开始的?程序设计时,什么情况下选择java高层次网络编程,什么情况下选择低层次网络编程?传输层。低层次网络编程是TCP和UDP,高层次网络编程是基于URL的。...

2020-11-17 12:24:17 126

原创 2020-11-17

TCP和UPD协议有什么不同?为什么称TCP是面向连接的可靠协议?不同:1、TCP面向连接,UPD面向非连接2、TCP是可靠的,UPD是不可容靠的3、同等条件下,TCP传输效率低于UPD4、上面三点是最主要的,其它的不同,比如头结构不同、连接建立方式不同,差错处理方式不同等等。TCP协议提供的是可靠的、面向连接的传输控制协议,即在传输数据前要先建立逻辑专连接,然后属再传输数据,最后释放连接3个过程。TCP提供端到端、全双工通信;采用字节流方式,如果字节流太长,将其分段;提供紧急数据传送功能。TC

2020-11-17 11:13:05 101

原创 2020-11-16

网络通信协议分几层?各层解决的问题是什么?7层,由低到高为:物理层:物理层(physical layer)的主要功能是完成相邻结点之间原始bai比特流传输。物理层协议关心的典型问题是使用什么样的物理信号来表示数据0和1。1位持续的时间多长。数据传输是否可同时在两个方向上进行。最初的廉洁如何建立以及完成通信后连接如何终止。物理接口(插头和插座)有多少针以及各针的作用。物理层的设计主要涉及物理层接口的机械、电气、功能和过电特性,以及物理层接口连接的传输介质等问题。物理层的实际还涉及到通信工程领域内的一些问

2020-11-16 22:59:01 124

原创 2020-11-10

仿照例15.5,编写完整的基于数据报的多客户/服务器通信程序客户端(只能启动一个,这是数据报的规定,但启动多个不会报错):import java.io.*;import java.net.*;public class QuoteClient { public static void main(String[] args) throws IOException{ DatagramSocket socket=new DatagramSocket();//创建数据报套接字 BufferedR

2020-11-10 11:10:29 233 1

原创 2020-11-10

仿照例15.4,编写完整的基于Socket的多客户/服务器通信程序客户端:import java.io.*;import java.net.Socket;public class TalkClient {public static void main(String[] args) { Socket socket = null; try { socket = new Socket("127.0.0.1", 4700);//本机地址 } catch (IOExc

2020-11-10 11:09:49 153

原创 2020-11-07

用Java模拟烧水泡茶的最优程序public class Test{public static void main(String[] args) { MyRunnable3 myRunnable3=new MyRunnable3(); MyRunnable4 myRunnable4=new MyRunnable4(); Thread t1=new Thread (myRunnable3); Thread t2=new Thread (myRunnable4); t

2020-11-07 14:29:11 112

原创 2020-11-07

Volatile关键字有什么作用1.可见性:Java提供了volatile关键字来保证可见性。  当一个共享变量被volatile修饰时,它会保证修改的值会立即被更新到主存,当有其他线程需要读取时,它会去内存中读取新值。  而普通的共享变量不能保证可见性,因为普通共享变量被修改之后,什么时候被写入主存是不确定的,当其他线程去读取时,此时内存中可能还是原来的旧值,因此无法保证可见性。  另外,通过synchronized和Lock也能够保证可见性,synchronized和Lock能保证同一时刻只有一个线

2020-11-07 14:26:54 132

原创 2020-11-01

什么时字符串的编码与解码?请举例说明java中编码:URLEncoder.encode(strUri,“utf-8”);java中解码码:URLDecoder.decode(strUri,“utf-8”);java编码和解码流读取文件bai,具有转换编码功能的有:OutputStreamWriter和InputStreamReader,构造器有如:InputStreamReader(InputStream in, String charsetName)创建使用指定字符集的 InputStrea

2020-11-01 21:54:48 215

原创 2020-11-01

为什么不建议在for循环中使用“+”进行字符串拼接常用的字符串拼接方式有五种,分别是使用+、使用concat、使用StringBuilder、使用StringBuffer以及使用StringUtils.join。用时从短到长的对比:StringBuilder < StringBuffer < concat < + < StringUtils.join由于字符串拼接过程中会创建新的对象,所以如果要在一个循环体中进行字符串拼接,就要考虑内存问题和效率问题。而“+”反编译后的代码,

2020-11-01 21:52:38 72

原创 2020-11-01

请简述String,StringBuffer,StringBuilder三者之间的共同点与区别,应该分别在何种场景下使用?不同点:String 是只读字符串,也就意味着 String 引用的字符串内容是不能被改变的。StringBuffer/StringBuilder 表示的字符串对象可以直接进行修改。StringBuilder 是 Java5 中引入的,它和 StringBuffer 的方法完全相同,区别在于它是在单线程环境下使用的, 因为它的所有方法都没有被 synchronized 修饰,因

2020-11-01 20:40:46 69

原创 2020-10-27

4-9(1)私有或公有的变量和方法的private或public都要写出来。(2)在主函数中创建的是对象引用而不是对象,所以要用到new()(3)C++里用到了拷贝构造函数,在Java中,在构造函数里,当形参与域变量同名时,用this来指代域变量。(4)Java函数体和函数声明不能分开。5-11(1)Java中没有名称空间namespace,而是换成了package。(2)Java调用类的静态成员函数是类名.函数名,而C++是类名::函数名。(3)Java中没有const修饰符,有类似的fi

2020-10-27 22:30:44 92

原创 2020-10-25

选取RuntimeException类的五个子类,编写抛出并捕获上述子类异常的程序

2020-10-25 17:18:11 111

原创 2020-10-25

简述异常处理的两种方式,并举例说明区别Exception类及其子类是Throwable的一种形式,Throwable类是Java语言中所有错误或异常的超类,即祖宗类,在Java中定义了很多异常类(如OutOfMemoryError、NullPointerException、IndexOutOfBoundsException等),这些异常类分为两大类:Error 和 Exception。Error是无法处理的异常,比如OutOfMemoryError,一般发生这种异常,JVM会选择终止程序。因此我们编写程

2020-10-25 13:34:22 86

原创 2020-10-25

简述Java Error类和Exception类的区别Error类和Exception类的父类都是throwable类,他们的区别是:Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止。Exception类表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止异常。...

2020-10-25 13:29:17 94

原创 2020-10-19

谈谈组合和继承的区别以及两者的使用场景考虑继承的时候,需要考虑的几个场景父类只是给子类提供服务,并不涉及子类的业务逻辑层级关系明显,功能划分清晰,父类和子类各做各的。父类的所有变化,都需要在子类中体现,也就是说此时耦合已经成为需求三、如何使用继承1、精心设计专门用于被继承的类,继承树的抽象层应该比较稳定,一般不要多于三层。2、对于不是专门用于被继承的类,禁止其被继承。3、优先考虑用组合关系来提高代码的可重用性。4、子类是一种特殊的类型,而不只是父类的一个角色5、子类扩展,

2020-10-19 22:54:09 62

原创 2020-10-19

如何实现两个对象之间互发消息?

2020-10-19 22:25:15 84

原创 2020-10-19

什么是覆盖?有什么作用?子类继承了父类,但重写了父类的方法,因此虽然是从父类中拿到的方法但重写之后与父类方法有了区别,因此称为覆盖。在实际生产添加代码时,并不是一直在一个类中增加额外的功能,而是通过覆盖,另建一个新类,通过super关键字,达到目的...

2020-10-19 22:09:53 81

原创 2020-10-19

什么是重载,有什么作用?在java中,如果有功能类似,可以使用相同的名字来定义不同功能方法;1.方法重载的主要好处就是,不用为了对不同的参数类型或参数个数,而写多个函数。多个函数用同一个名字,但参数表,即参数的个数或(和)数据类型可以不同,调用的时候,虽然方法名字相同,但根据参数表可以自动调用对应的函数。如果我们使用reflector去查看微软写的.net的基类库的话,我们可以发现他使用很多的方法重载,这样我们在调用的时候,就不需要记那么多的方法名称,而是知道了方法的功能就可以直接的给他传递不同的参数,

2020-10-19 22:05:53 144 1

原创 2020-10-19

什么是组合,有什么作用,请举例说明?

2020-10-19 22:03:08 109 1

原创 2020-10-19

子类对于从父类继承的哪些属性与方法是可见的?

2020-10-19 18:32:37 80

原创 2020-10-19

Java的访问控制

2020-10-19 18:09:58 108

原创 2020-10-07

Java数组元素类型为基本数据类型和引用类型时,有什么区别,举例说明前者数组中的元素全部为基本数据类型,后者存储的为对象的地址。比如:Cell[] cs=new Cell[10];当声明完成后,数组对象的地址为NULL。如下:如果你声明的是基本数据类型的数组,那各元素都是基本数据类型,不是对象 比如 :int[] a = new int[3];如果你声明的是引用类型的数组,那各元素都是对象 比如:Object[] test = new Object[12];基本数据类型和引用数据类型的区别:

2020-10-07 21:00:53 94

原创 2020-10-07

Java中float[10] arr;语句正确吗,为什么错误的,对于Java而言,定义数组时,不可以在方括号里指定数组的大小。正确的应为 float [] arr;

2020-10-07 20:47:46 99

原创 2020-10-07

Java中final修饰符都有什么作用,举例说明Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。下面就从这三个方面来了解一下final关键字的基本用法。1.修饰类当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。在使用final修饰类的时候,要注意谨慎选择,除非这个类真的在以后不

2020-10-07 20:45:36 96

原创 2020-10-07

类的static字段和非static字段的区别是什么?什么情况应该使用static修饰符?请举例说明

2020-10-07 20:37:02 122

原创 2020-10-07

对象初始化顺序是怎样的?请举例说明

2020-10-07 19:30:34 91

原创 2020-10-07

对象作为参数传递的特点是什么?举例说明0

2020-10-07 19:00:16 143

原创 2020-10-06

对象和对象引用的区别

2020-10-06 17:06:48 101

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除