`
望雨9006
  • 浏览: 3611 次
社区版块
存档分类
最新评论
文章列表
<div class="iteye-blog-content-contain" style="font-size: 14px"></div> 引起一个线程阻塞有多种情况 1 线程执行了某个同步方法,由于获取不到锁,导致线程放弃cpu执行权 2 调用某个对象wait方法,只有等待其他线程执行了该对象notify或者notifyAll方法才能恢复 3 线程调用了Thread.sleep(int n) 4 执行io或者远程通信时,等待资源而进入阻塞状态,例如我们读取控制台数据System.in时,如果我们一直没有输入数据,那么线程就一直等 ...

socket详解

    博客分类:
  • nio
打开socket源码,发现socket有很多重载的构造方法,大部分构造方法都需要传链接地址和端口   public Socket(InetAddress address, int port) throws IOException {         this(address != null ? new InetSocketAddress(address, port) : null,              (SocketAddress) null, true);     }   public Socket(String host, int port, InetAddress loc ...

java网络编程概念

    博客分类:
  • nio
java网路编程都是基于tcp/ip协议基础上,致力于实现应用层,传输层(tcp/ip)向应用层提供了套接字socket接口,socket封装了向下层(网络层ip)传输数据的细节,应用层有ftp http https telnet等。应用层通过socket与远程建立链接,实现远程通信。java.net包下为我们提供了3种套接字类Socket,serverSocket,DatagramSocket。这里演示一个socket和serverSocket例子 服务端: public class BioServer { private ServerSocket server; public B ...

springbean装配

spring ioc容器,只有当我们为容器指定需要容器帮我们做的事情后,容器才能为我们工作,spring帮我们创建Bean,管理Bean,xml配置装配Bean,我们来看看常见的bean装配,属性依赖注入: 向Bean属性注入简单数据 <bean id="person" class="spring.Person"> <constructor-arg name="age" value="20" /> <constructor-arg name="num" val ...

bean的生命周期

我们普通Bean的生命周期可能只是new出来就直接用了,不用的时候GC自动回收,而Spring的生命周期比我们普通new的对象生命周期更为复杂细腻 1 spring对Bean进行实例化,相当于我们new一个对象 2 依赖注入我们Bean中属性 构造器注入 Set注入,需注意对比依赖注入和Init执行先后顺序 3 如果Bean实现了BeanNameAware接口,spring将Bean的ID传递给setBeanName()方法 4 如果Bean实现了BeanFactoryAware接口,spring将Bean调用setBeanFactory方法,将BeanFactory set进去 5 如果Be ...
spring简化企业开发主要采取以下4种关键策略: 1,基于POJO的轻量级和最小侵入式编程 2,通过依赖注入和面向接口编程实现松散耦合 3,基于切面和惯例进行申明式编程 4,通过模板和切面减少样式代码 侵入式编程:spring Bean无需继承任何接口参与spring生命周期管理 依赖注入: public class AnimalTest { private Animal animal; public AnimalTest() { Animal animal = new Animal(); } } 这样代码就有极高的耦合度,animal new必须是实现类,就限制了其功能调 ...
Global site tag (gtag.js) - Google Analytics