前言:该篇是参考结合<高手深度解析:JVM是什么>,自己剔除添加了一些内容整理的而来,这里感谢<高手深度解析:JVM是什么>的文章的指点讲解。JVM的生命周期 “JVM实例和JVM执行引擎实例,JVM实例对应了一个独立运行的Java程序,而JVM执行引擎实例对应了属于用户运行程序的线程;也就是JVM实例是进程级别,而执行
package randomdata; import java.util.Random; public class RandomCharData { //可以将字符转换赋值给int类型,查看其ASCII码 public static void main(String[] args) { //随机生成纯数字 for(int i=0;i<
Java虚拟机的参数说明Java运行时数据区域:线程共享区:方法区(永久区),堆线程私有区:虚拟机栈,本地方法栈,程序计数器JAVA_OPTS="-server -Duser.timezone=GMT+08-Xms1024m -Xmx1024m -XX:PermSize=1024m -Xmn512m-XX:MaxPermSize=1024m-Djava.awt.headless=true
一 显式锁 在类中利用synchronized修饰的方法或者this代码块,均使用的是类的实例锁或者类的锁。这些锁都称为内置锁。 可以利用显式锁进行协调对象的访问。即ReentrantLock。这是一种可以提供无条件,可轮询,定时以及可中断的锁获取操作。对于锁的所有加锁和解锁都是显式的。常规的内置锁是无法中断一个正在等待获取锁的线程,以及无法在请
一 简述 线程池,作为一个管理一组同构工作线程的资源。接受提交的任务,利用线程池中的线程进行工作的处理。 在另一篇《Java多线程设计模式(4)线程池模式》利用非Executors描述了线程池基本构建过程,对于线程池基本机制进行了说明。由于Java类库中有Executor来专门用于线程池的管理的类,所以可以用Executor任务执行框架来实现线程池的构建。
在实际并发编程中,可以利用synchronized来同步线程对于共享对象的访问,用户需要显示的定义synchronized代码块或者方法。为了加快开发,可以使用Java平台一些并发基础模块来开发。 注:关于容器类中的常见并发容器和同步容器的类图,详见另一篇文章《Java集合框架图》一 同步容器类 同步容器类主要包括Vector和Hashtable,都是通过C
在使用java各种集合中,会对庞大的集合类有些应接不暇,没有统一的类图来更加直观的显示各个类之间的关系。在研究并发编程中,特定整理一些集合类之间的关系。这里特地画了一张集合方面的类图,里面标注着一些同步安全类,并发容器类,以及适当的解释说明,由于集合类框架很庞大,这里只绘制了一些常用的类图,希望供学友学习交流。
前言:在J2EE中,注解使得开发更加便利,省去了生成XML文件的过程,在Hibernate实体声明中,可以简简单单的用几个注解就可以免去生成一个XML的文件操作。这里就主要论述一下annotation的用法和自定义注解处理器。当在创建描述符性质的类或接口时,有大量重复性的工作时候,就可以利用注解来实现。基本语法: Java目前包括三种标准注解和四种元注解。元注解主要负责注解其他注解的。
一 JAVA内存模型JMM Java的内存模型,也就是JVM所设置的内存模型。Java内存模型分为主存储器(主内存)和工作存储器(工作内存),这里的存储器与计算机硬件所讲的不一样。 主存储器,就是实例位置所在的区域,所有的实例都存在主存储器内,并且实例的字段也位于这里。主存储器为所有的线程所共享,主内存主要对应于Java堆中对象的实
一 Thread-Specific Storage Pattern Thread-Specific Storage Pattern指的就是线程独有的储藏库,针对每个线程提供内存空间的意义。这种模式只有一个入口,但是内部会对每个线程提供特有的存储空间。 Thread-Specific Storage Pattern的所有参与者: 1,Client
一 Two-Phase Termination Pattern Two-Phase Termination Pattern,指的就是当希望结束一个线程的时候,送出一个终止请求,但是不会马上停止,做一些刷新工作。进入“终止处理中”,在该状态下,不会进行该线程日常工作任务的操作,而是进行一些终止操作。 这个方式所考虑的因素如下: 1,必须要考虑到使
一 Future Pattern 假如有一个执行起来需要花费一些时间的方法,为了省去不必要的等待执行结果出来,继续做别的事情,则可以事先获取一个“提货单”即Future参与者,Future Pattern模式也就是这样的方式,当一个线程需要另一个线程的处理的结果时候,则不必一直等着处理结果,可以先处理别的事情,提前拿个Future对象,再过一段时间来获取另一个线程的处理结
前序: Thread-Per-Message Pattern,是一种对于每个命令或请求,都分配一个线程,由这个线程执行工作。它将“委托消息的一端”和“执行消息的一端”用两个不同的线程来实现。该线程模式主要包括三个部分: 1,Request参与者(委托人),也就是消息发送端或者命令请求端 2,Host参与者,接受消息的请求
1 Read-Write Lock PatternRead-Write Lock Pattern是一种将对于共享资源的访问与修改操作分离,称为读写分离。即访问是reader,修改是write,用单独的线程来处理。可以允许多个reader,但是不允许同时多个写入或者在读的过程中有写入。由于对于实例状态的读取,并不会破坏状态的完整性且状态也不会修改,可以允许多个线程同时访问操作。但是若在写入的过程中,
1 Producer-Consumer PatternProducer-Consumer Pattern主要就是在生产者与消费者之间建立一个“桥梁参与者”,用来解决生产者线程与消费者线程之间速度的不匹配。 当要从某个线程Produccer参与者将数据传输给其它线程Consumer参与者的时候,此时就可以在中间加一个Channel参与者,在Channel参与者中以某种方式存
1 线程中的几个方法解释Thread.sleep(long 毫秒)在指定的时间内让当前线程休眠,将控制权交给其他线程,休眠的线程依旧拥有它所占用的锁,Thread.yield();暂停或者放弃当前正在执行的线程,并且执行其他线程,但是并没有释放该线程所拥有的锁,线程放弃后,让其他相同或者更高线程得以运行。t.join()在A线程中等待t线程,可以指定一定时间后继续执行或者无限等待t.interru
一个 Web 应用对应一个 Context 容器,在Tomcat中Context容器就是管理 Servlet的,是Servlet 运行时的 Servlet 容器,添加一个 Web 应用时将会创建一个 StandardContext 容器,并且给这个 Context 容器设置必要的参数,url 和 path 分别代表这个应用在 Tomcat 中的访问路径和这个应用实际的物
1 Servlet基本生命周期 一个Servlet是HttpServlet的子类,由支持Servlet的服务器完成该子类的对象初始化的工作。当有多个客户端请求同一个Servlet时候,servlet引擎就会为每个客户端启动一个线程来处理连接。 Servlet容器一般采用“单实例,多线程”的方式管理Servlet,即Servlet容器只会创建一个Servlet实例,针对不同的用户访问将
1 访问内部类的方法 OuterClassName ocn=new OuterClassName() OuterClassName.InnerClassName in=ocn.new InnerClassName(); 如果从外部类的非静态方法之外的任意位置创建内部类必须用以上方式2 内部类可以访问其外围类中的所有成员,还拥有其外部类的所有元素的访问权,之所以这样是因为当用某一个外部类的对象创建一
非阻塞I/O是基于事件机制驱动设计的,通道会事先注册在一个监听器上,并且注明其所要关注的事件,当事件触发的时候会自动的由系统来调用这些符合条件的通道。 要获取一个服务器端通道,一般需要利用ServerSocketChannel.open()创建一个服务器端通道。然后利用该服务器端通道获取其对等的ServerSocket对象,设置该对象的监听端口
非阻塞I/O可以减少服务器无用的等待,从而高效的处理其他工作。能够让一个线程负责多个连接,而不是为每一个Socket都分配一个连接,在该线程中,选取负责多个连接中的一个已经准备好接收数据的连接,从而尽快的用数据进行填充,进而转下下一个准备好的连接。 传统意义上的连接,会每次都会产生大量的线程,线程切换会耗费很大的时间。 当然非阻塞I/O主要是未服务器端设计的,
JavaMail是API 是一个标准的Java扩展,它是J2EE的范畴,在J2EE开发过程中可能会需要用到这个API。在学习JavaMail之前,有必须要对现在的互联网的邮件协议进行有个大体的了解。邮件协议在Internet中,常用的邮件操作相关的协议有3个—SMTP、POP、IMAP。简单邮件传输协议(simple mail transferprotocol,SMTP),这个协议是邮件服务器之
URLConnection是一个协议处理器中的一个类,它是表示指向URL所指定的资源的活动连接。主要用于两个方面,一个是与服务器(特别是HTTP服务器)的交互,可以用来查看服务器发送的首部,设置连接的属性,设置客户端的请求的首部等。利用它也可以实现POST和PUT方法来发送数据。另一个方面是Java的协议处理器机制的一部分。所谓的协议处理器就是将处理协议的细节从处理特定
UDP是一种基于不可靠连接的协议,它无法保证传输的数据能不丢失不重复到达,尽自己努力传输,但是不会重传,不需要建立连接,则它所需要的时间会很快。它是基于数据报为单位进行传输的,不想TCP是一种基于流进行传输的。在UDP中没有所谓的Socket和ServerSocket来区分一个是客户端一个是服务器端,相反在UDP中客户端和服务器端都是基于相同的DatagramSocke
常用基本类InetAddress类是java中表示IP的类。主要用于Socket,ServerSocket,URL,DatagramSocket等 创建InetAddress用三个静态方法 getByName(String hostname)throws UnknownHostException getAllByName(String hostname)throws Unk
HTTP是Web浏览器与Web服务器之间通信的标准协议,HTTP指明了客户端如何与服务器建立连接,如果从服务器请求数据,服务器如何响应请求,关闭连接。HTTP是使用TCP/IP协议进行传输数据的,也就是传输层利用TCP进行连接,进行可靠连接的。HTTP客户端向服务器端的请求建立连接 一般客户端与服务器端在80端口处建立一个TCP连接;进行请求 请
package whut.filedeal; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import jav
前言:本文主要讲解一些常见的输入输出流,并没有把I/O整个流的类全部包含进入。1 输入流输出流(处理字节的流)以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。输入流(InputStream)图中红色部分代表常见使用的流。public abstract class InputStream常见方法:public abstract int read() throws IOExcept
常用的设计模式有很多,而其中一些模式又可以分为一类,根据GOF将设计模式分为三类: 创建型模式,行为型模式,结构型模式 创建型模式:它涉及到对象实例化,这类模式都提供一个方法,将客户从所需要实例化的对象中解耦,包括单例模式(Singleton)、构建模式(Builder)、原型模式(Prototype)、抽象工厂
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号