
Java
文章平均质量分 95
程序猿架构
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
聊聊Java BIO(同步阻塞IO)、NIO(非阻塞IO)、AIO(异步IO)
Java中有阻塞IO、非阻塞IO。阻塞IO可以理解为“一个连接对应于一线程”。非阻塞IO可以理解为“一个请求(一个请求里面可能会有多个连接【长连接短连接】)对应于一线程”。BIOJava中BIO也成为同步阻塞IO。同步阻塞IO模式下,服务器实现模式为一个连接对应一个线程,即:有连接请求从客户端发起时,服务器端就需要创建一个线程进行处理,如果有大量连接时,服务器就需要创建大量线程进行处理。当然...原创 2020-02-25 08:02:18 · 1107 阅读 · 0 评论 -
Java的异常类在使用时有哪些坑?
异常类使用时的坑在catch中捕获到异常然后再把该异常重新抛出,则外层的catch捕获到的还是最原始的那个异常对象,如果在内部catch中,对异常对象调用 fillInStackTrace()方法,则调用这个方法的那一行变成了异常的新发生地。如,(看一下这两个throw的区别)想要在捕获到一个异常后抛出另一个异常,并且希望保留下原始的异常信息,这就是异常链。要实现异常链,Erro...原创 2020-01-17 22:53:45 · 362 阅读 · 0 评论 -
Java动态代理的原生实现和Spring AOP的实现
Java中的动态代理动态代理是动态地创建代理并动态地处理对所代理方法的调用。实现动态代理需要实现InvocationHandler接口,实现其invoke(object, method, args[])函数,传递的是一个代理实例(Proxy类库的$Proxy0)、方法和参数。Java动态代理的创建动态代理对象是用静态方法Proxy.newProxyInstance()方法创建的:...原创 2020-01-17 22:46:34 · 611 阅读 · 0 评论 -
Java项目中根据相对路径和绝对路径获取文件的方法 getResource(name)
首先,项目中文件分布情况如下,innerFile.txt位于test.test包下,innerInnerFile.txt位于test.test.inner包下,outterFile.txt位于包的根目录下,那么,在App类里,如何根据相对路径、绝对路径获取innerFile.txt、innerInnerFile.txt和outterFile.txt呢?class.getResource(name)先原创 2017-05-14 09:08:55 · 80925 阅读 · 4 评论 -
Java多线程并发器之AbstractQueuedSynchronizer分析
AbstractQueuedSynchronizerAbstractQueuedSynchronizer是Java并发工具包中最重要的工具,它是一个抽象类,为Java的各种同步器,锁等提供了并发抽象,是由大名鼎鼎的Doug Lea完成。java.util.concurrent提供了很多并发工具类,其中很多都是基于AbstractQueuedSynchronizer实现的。如,ReentrantLoc原创 2017-05-17 08:33:15 · 693 阅读 · 0 评论 -
Java进程Runtime、Process、ProcessBuilder调用外部程序
通过Java执行系统命令,与cmd中或者终端上一样执行shell命令,最典型的用法就是使用Runtime.getRuntime().exec(command)或者new ProcessBuilder(cmdArray).start()。让我们看看Runtime、ProcessBuilder的详细解析和详细用法。RuntimeRuntime类是Java程序的运行时环境。不能new出一个Runtime对原创 2017-05-15 09:01:24 · 34737 阅读 · 1 评论 -
Java多线程之深入了解读写锁
背景和意义java.util.concurrent中有很多的同步工具类,比如ReentrantLock、Semaphore、CountLatch、CyclicBarrier、BlockingQueue、ConcurrentLinkedQueue等等,其中,很多使用的是排他锁的实现,即,同一时间只有一个线程能够访问共享的变量或临界区。因此,在某些场景下,大部分的同步工具类的性能都不尽人意。想想一下这种原创 2017-05-14 09:57:28 · 608 阅读 · 0 评论 -
OkHttp详细用法
引入依赖<dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>3.1.0</version></dependency>发起GET请求首先,根据url和参数构建get请求的完整url:private String builderGetUrl(S原创 2017-05-14 08:50:30 · 2133 阅读 · 0 评论 -
Spring源码之JdbcTemplate分析
JdbcTemplate用过Spring开发的,ORM框架一般选择MyBatis或者Hibernate,不过,Spring对JDBC API的封装工具JdbcTemplate,也提供了很方便的操作,不需要再在使用jdbc api时捕获那么多受检异常,忍受那么多样板式的代码了。JdbcTemplate主要提供以下几类方法:execute方法:用于执行任何SQL语句,一般用于执行DDL语句;upda原创 2017-05-17 22:56:41 · 591 阅读 · 0 评论 -
Java进程 vs 线程、线程池
Java进程 vs 线程、线程池1. 进程Java进程中Runtime类封装了进程运行时的环境。每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。一般不能实例化一个Runtime对象,应用程序也不能创建自己的 Runtime 类实例,但可以通过 getRuntime 方法获取当前Runtime运行时对象的引用。一旦得到了一个当前的Runtime对象的引用,原创 2017-03-08 14:38:29 · 696 阅读 · 0 评论