![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
YHALcong
这个作者很懒,什么都没留下…
展开
-
【Java基础】Java多线程(1)线程基础
假设我们想要编写一个程序从1加到100,那很简单写一个for循环就可以了,那范围再大些,比如从1加到1亿、10亿……呢?或许我们也可以采用循环来完成,但十分庞大的数字,让计算机来处理也需要一段时间。我们有没有其他办法呢?答案当然是有了,我们可以将1到1亿的数字划分为多个片段,开启多个线程让它们分别处理其中的一段,然后再将这些线程的处理结果加起来。这便是采用多线程来解决问题了。(或许这并不是解决这个...原创 2018-02-11 13:39:56 · 258 阅读 · 0 评论 -
【Java基础】Java输入输出流(1)InputStream总结
FileInputStream、ByteArrayInputStream这些从字面意思就比较好理解了,但是像BufferedInpitStream、DataInputStream这种包装流理解起来就不太容易了,经常看到的代码是下面这样的,一个套着一个,看起来很头大。FileInputStream fileInputStream = new FileInputStream("test.txt...原创 2018-02-09 13:32:20 · 387 阅读 · 0 评论 -
Java中使用getResource和getResourceAsStream获取文件的路径问题
Java中使用getResource和getResourceAsStream获取文件的路径问题Class.getResource 和 Class.getResourceAsStream使用方式:getResource(name) 和 getResourceAsStream(name)如果 name 以“/”开头,代表绝对路径,从项目根目录开始查找如果 name 不以"/"开头,代表相对...原创 2018-10-12 17:23:08 · 14641 阅读 · 1 评论 -
【JVM学习笔记】如何确定被调用方法的版本
在字节码层面,Java方法的调用设计到如下几个字节码:invokestatic #index调用静态方法,被调用方法的版本可在类加载解析阶段确定,并将符号引用转换为直接引用invokespecial #index调用实例构造器,私有方法,父类方法,被调用方法的版本可在类加载解析阶段确定,并将符号引用转换为直接引用invokevirtual #index调用final方法的版本确定时期...原创 2019-01-31 16:18:11 · 239 阅读 · 0 评论 -
【Java基础】关于NIO的理解
    最近看《Redis设计与实现》的文件事件,回顾了一下I/O多路复用的知识,又接着看了一下之前使用Java NIO的代码,突然有了一点新的理解,在此简单记录一下,但这里并不介绍I/O多路复用,NIO相关的基础知识。关于NIO的相关知识使用等,有需要可参考https://segmentfault.com/a/1190000006824196(直接粘了地址...原创 2019-02-15 17:22:01 · 174 阅读 · 0 评论 -
【JVM学习笔记】图解Java Synchronized执行过程
- Synchronized用来给对象加锁,一段简单的示例代码:public class SynchronizedDemo { //实例方法,同步方法,加锁对象是当前实例 public synchronized void lockInstance() { System.out.println("Instance"); } public void lockThis() {...原创 2019-01-31 10:42:49 · 445 阅读 · 1 评论 -
【Java基础】try-catch-finally执行流程
一、函数完全由try-catch-finally构成public void tryCatch{ try { //try statement 1 //try statement 2 } catch(ArithmeticException ex) { //catch ArithmeticException ...原创 2019-02-13 13:29:46 · 1298 阅读 · 0 评论 -
【Java基础】线程池
创建一个线程需要操作系统的参与,也即从用户态陷入内核态,这一过程的开销较大,为此采用线程池的方式,将创建出来的线程缓存起来,减少频繁的创建线程带来的开销。这就是下面要说的线程池了,我们可以通过Java的工具类Executors获得缓存线程池、固定线程池等等,也可以通过ThreadPoolExector传入必要的参数自行构造线程池。以下分别说明。1....原创 2019-03-06 09:06:13 · 222 阅读 · 0 评论