- 博客(7)
- 收藏
- 关注
原创 IO的学习----字节流
我们之后可以使用public String (byte[] bytes, int offset, int length)方法将字节数组转变为字符串,参数1 : 字节数组 参数2 : 起始索引 参数3 : 转换的个数。其成员方法为void write(int b)写出单个字节 void write(byte[] b)写出一个字节数组 void write(byte[] b, int off, int len)写出字节数组的一部分。字节缓冲流在源代码中内置了字节数组,可以提高读写效率。
2025-03-31 20:32:57
382
原创 UDP与TCP通信的介绍与实现
然后通过 socket 对象获取传输数据的流对象,也就是使用 getOutputStream()getInputStream() 方法。对UDP来说它的步骤是先创建发送端的DatagramSocket对象,将数据打包出去(也是创建DatagramPacket对象),发送数据,释放资源。所以我们需要在另一个类中创建DayagramSocket对象,接受Pack,解包,释放资源。UDP是面向无连接通信协议,它的特点是速度快,有大小限制一次最多发送64K,数据不安全,易丢失数据。TCP是面向连接的通信协议。
2025-03-31 20:01:34
247
原创 JAVA的反射机制
... parameterTypes) 返回单个成员方法对象。>... parameterTypes) 返回单个公共成员方法对象。我们学习反射可以通过类的字节码对象去给类的成员变量对象赋值与获取、使用成员方法、通过构造方法创建对象。Field getDeclaredField(String name) 返回单个成员变量对象。Object invoke(Object obj, Object... args) 运行方法。Field getField(String name) 返回单个公共成员变量对象。
2025-03-30 21:26:18
249
原创 类加载器与双亲委派模式
其具体应用在:如果一个类加载器收到了类加载请求,它并不会自己先去加载, 而是把这个请求委托给父类的加载器去执行。倘若父类加载器无法完成此加载任务,子加载器才会尝试自己去加载,这就是双亲委派模式。Platform class loader:平台类加载器,负责加载 JDK中一些特殊的模块 负责加载 lib\modules 内部的类。JDK9 之前是:(Extension Class Loader) 扩展类加载器,负责加载 jre\lib\ext 目录下的类。类加载器的加载过程为加载->链接->初始化。
2025-03-30 20:53:46
272
原创 线程的学习(二)
使用场景: 如果创建一个对象需要消耗的资源过多,比如 I/O 与数据库的连接 并且这个对象完全是可以复用的, 我们就可以考虑将其设计为单例的对象。可以看到我使用了notifyAll()方法替换了notify()方法,因为此方法可以使全部的线程唤醒,因为线程平常为唤醒状态所以通过循环语句判断进程是否等待。(1)使用wait()与notify()方法使线程等待或者唤醒某个线程。一般我们通过设置一个值加上判断语句进行线程的等待。线程池的建立有两种方法,一种是使用JDK自带的还有一种是用户自定义线程池。
2025-03-28 18:37:44
493
原创 线程的学习(一)
方式分为(1)继承Thread类 (2)实现Runnable接口 (3)实现Callable接口 其中这两个接口的区别是有无返回值。进程 (Process) 是计算机中的程序关于某数据集合上的一次运行活动 是系统进行资源分配的基本单位。简单来说就是程序的执行过程。安全问题出现的条件:是多线程环境、有共享数据、 有多条语句操作共享数据。同步代码块的创建:synchronized(锁对象) { 多条语句操作共享数据的代码 }里面的锁对象我们一般使用类的字节码,其格式为类名.class,但其可以为任意对象。
2025-03-27 21:18:42
344
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人