随笔分类 - java相关
简单理解io与nio
摘要:io是面向流的,而nio是面向缓冲区的; io每次从流中读取一个或者多个字节,直到读取完所有的字节,这就意外着它是阻塞式的,当一个线程执行read或者write的时候,这个线程是不能够再去做其他的事情了; nio会读取数据放到一个缓冲区里,这样可以增加读取数据的灵活性,可以前后移动读取数据的位置,它
阅读全文
io与nio的区别
摘要:传统的socket IO中,需要为每个连接创建一个线程,当并发的连接数量非常巨大时,线程所占用的栈内存和CPU线程切换的开销将非常巨大。使用NIO,不再需要为每个线程创建单独的线程,可以用一个含有限数量线程的线程池,甚至一个线程来为任意数量的连接服务。由于线程数量小于连接数量,所以每个线程进行IO操作时就不能阻塞,如果阻塞的话,有些连接就得不到处理,NIO提供了这种非阻塞的能力。 小量的线程如何...
阅读全文
反射机制
摘要:指的是可以于运行时加载,探知和使用编译期间完全未知的类. 程序在运行状态中, 可以动态加载一个只有名称的类, 对于任意一个已经加载的类,都能够知道这个类的所有属性和方法; 对于任意一个对象,都能调用他的任意一个方法和属性; 加载完类之后, 在堆内存中会产生一个Class类型的对象(一个类只有一个Class对象), 这个对象包含了完整的类的结构信息,而且这个Class对象就像一...
阅读全文
字节流与字符流的区别
摘要:输入输出字节流使用Inputstream、OutputStream来完成的,而输入输出字符流是用Reader和Writer完成的的; 字符流处理的是2个字节的Unicode,分别操作字符、字符数组、字符串;字节流处理单元为1个字节,操作字节和字节数组; 字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的,而字符流在操作的时候是使用缓冲区的,所以字节流在操作文件的时候,即使...
阅读全文
关于jvm的相关知识
摘要:一、堆内存和栈内存 1、jvm中的栈内存主要存储的是基本类型的变量和对象的引用 2、jvm中的堆内存主要存储的是用new来创建的对象和数组,可变长字符串(StringBuilder和StringBuffered)都是存储在堆内存的 使用堆的优点是动态分配存储空间,更灵活,但缺点是由于要动态分配内存,所以存储速度较慢;而使用栈速度就比较快,也可以实现数据的共享,但缺点是栈中的数据大小和生存期是...
阅读全文
对java多线程的认识
摘要:多线程的概念:多线程是一种机制,它允许在程序中并发的执行多个线程,且每个线程间相互独立。 实现多线程的两种方式: 1、继承java.lang.Thread类,并且重写它的run方法,将线程的执行主体放在其中; 2、实现java.lang.Runnable接口,实现它的run方法,并将线程的执行主体放在其中; 线程有五大状态: 1、新建状态(New):使用new操作符创建一个线程的时候,线...
阅读全文
java多态性
摘要:多态分两种: (1) 编译时多态(设计时多态):方法重载。 (2) 运行时多态:JAVA运行时系统根据调用该方法的实例的类型来决定选择调用哪个方法则被称为运行时多态。(我们平时说得多的事运行时多态,所以多态主要也是指运行时多态) 运行时多态存在的三个必要条件: 一、要有继承(包括接口的实现); 二、要有重写; 三、父类引用指向子类对象。 多态的好处: 1.可替换性...
阅读全文
浙公网安备 33010602011771号