摘要: 作者:郭无心链接:https://www.zhihu.com/question/19786827/answer/66706108来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 COOKIE和SESSION有什么区别?cookie保存在客户端,session保存在服务器 阅读全文
posted @ 2018-01-18 22:29 darrell007 阅读(257) 评论(0) 推荐(0)
摘要: Session机制: 1)、session机制采用的是在服务器端保持 HTTP 状态信息的方案 。 2)、当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否包含了一个session标识(即sessionId),如果已经包含一个sessionId则说明以前已经为 阅读全文
posted @ 2018-01-18 21:39 darrell007 阅读(760) 评论(0) 推荐(0)
摘要: httpSession的正确理解 关于HttpSession的误解实在是太多了,本来是一个很简单的问题,怎会搞的如此的复杂呢?下面说说我的理解吧: 一个session就是一系列某用户和服务器间的通讯。服务器有能力分辨出不同的用户。一个session的建立是从一个用户向服务器发第一个请求开始,而以用户 阅读全文
posted @ 2018-01-18 21:24 darrell007 阅读(384) 评论(0) 推荐(0)
摘要: 深入理解HTTP Session 深入理解HTTP Session session在web开发中是一个非常重要的概念,这个概念很抽象,很难定义,也是最让人迷惑的一个名词,也是最多被滥用的名字之一,在不同的场合,session一次的含义也很不相同。这里只探讨HTTP Session。 为了说明问题,这 阅读全文
posted @ 2018-01-18 21:08 darrell007 阅读(152) 评论(0) 推荐(0)
摘要: J2ee开发主要是浏览器和服务器进行交互的一种结构.逻辑都是在后台进行处理,然后再把结果传输回给浏览器。可以看出服务器在这种架构是非常重要的。 这几天接触到两种Java的web服务器,做项目用的Tomcat,看视频看的是WebLogic Server(WLS),都是web服务器,有什么区别和联系呢? 阅读全文
posted @ 2018-01-18 16:30 darrell007 阅读(139) 评论(0) 推荐(0)
摘要: SAX是Simple API for XML的缩写,它并不是由W3C官方所提出的标准,虽然如此,使用SAX的还是不少,几乎所有的XML解析器都会支持它。 与DOM比较而言,SAX是一种轻量型的方法。我们知道,在处理DOM的时候,我们需要读入整个的XML文档,然后在内存中创建DOM树,生成DOM树上的 阅读全文
posted @ 2018-01-18 16:26 darrell007 阅读(451) 评论(0) 推荐(0)
摘要: dom4j帮助文档在dom4j-1.6.1/docs/guide.html文件里面,全部是英文,但是基本上应该能看懂。 1、 四种操作xml的方式:SAX,DOM,JDOM,DOM4J. 2、 DOM(Document Object Model):意思是把整个xml做为一个整体对象,直接全部放到内存 阅读全文
posted @ 2018-01-18 16:24 darrell007 阅读(349) 评论(0) 推荐(0)
摘要: XML解析方式有两种: 1、DOM解析; 2、SAX解析。 XML解析工具: import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.tra 阅读全文
posted @ 2018-01-18 16:23 darrell007 阅读(154) 评论(0) 推荐(0)
摘要: 转换流: InputStreamReader :字节到字符的桥梁。解码。 OutputStreamWriter:字符到字节的桥梁。编码。 流的操作规律: 之所以要弄清楚这个规律,是因为流对象太多,开发时不知道用哪个对象合适。 想要知道开发时用到哪些对象。只要通过四个明确即可。 1,明确源和目的(汇) 阅读全文
posted @ 2018-01-18 16:22 darrell007 阅读(150) 评论(0) 推荐(0)
摘要: InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。 OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。 public class Client8 { publ 阅读全文
posted @ 2018-01-18 16:21 darrell007 阅读(132) 评论(0) 推荐(0)
摘要: public class BufferedWriterDemo { private static final String LINE_SEPARATOR = System.getProperty("line.separator"); /** * @param args * @throws IOException */ public st... 阅读全文
posted @ 2018-01-18 16:20 darrell007 阅读(132) 评论(0) 推荐(0)
摘要: 输入流和输出流相对于内存设备而言. 将外设中的数据读取到内存中:输入 将内存的数写入到外设中:输出。 字符流的由来: 其实就是:字节流读取文字字节数据后,不直接操作而是先查指定的编码表。获取对应的文字。 在对这个文字进行操作。简单说:字节流+编码表 字节流的两个顶层父类: 1,InputStream 阅读全文
posted @ 2018-01-18 16:19 darrell007 阅读(184) 评论(0) 推荐(0)
摘要: 关于动态代理设计模式很可能题主就在不知不觉中使用了,例如Spring中的AOP,Struts2中的拦截器等。先来看静态代理模式代码: 刚开始我会觉得SubjectProxy定义出来纯属多余,直接实例化实现类完成操作不就结了吗?后来随着业务庞大,你就会知道,实现proxy类对真实类的封装对于粒度的控制 阅读全文
posted @ 2018-01-18 16:17 darrell007 阅读(146) 评论(0) 推荐(0)
摘要: 集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的 阅读全文
posted @ 2018-01-18 16:16 darrell007 阅读(309) 评论(0) 推荐(0)
摘要: java8之重新认识HashMap 摘要 HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JD 阅读全文
posted @ 2018-01-18 16:01 darrell007 阅读(3653) 评论(0) 推荐(1)
摘要: ReentrantLock ReentrantLock可以等同于synchronized使用。 ReentrantLock 类实现了Lock ,它拥有与 synchronized 相同的并发性和内存语义,但是添加了类似锁投票、定时锁等候和可中断锁等候的一些特性。此外,它还提供了在激烈争用情况下更佳的 阅读全文
posted @ 2018-01-18 15:12 darrell007 阅读(562) 评论(0) 推荐(0)
摘要: 多线程和并发性并不是什么新内容,但是 Java 语言设计中的创新之一就是,它是第一个直接把跨平台线程模型和正规的内存模型集成到语言中的主流语言。核心类库包含一个 Thread 类,可以用它来构建、启动和操纵线程,Java 语言包括了跨线程传达并发性约束的构造 —— synchronized 和vol 阅读全文
posted @ 2018-01-18 15:10 darrell007 阅读(368) 评论(0) 推荐(0)
摘要: package com.cwcec.test; public class TraditionalThreadCommunication { /** * @param args */ public static void main(String[] args) { final Business business = new ... 阅读全文
posted @ 2018-01-18 15:07 darrell007 阅读(367) 评论(0) 推荐(0)
摘要: 5.2 网络类加载器 下面将通过一个网络类加载器来说明如何通过类加载器来实现组件的动态更新。即基本的场景是:Java 字节代码(.class)文件存放在服务器上,客户端通过网络的方式获取字节代码并执行。当有版本更新的时候,只需要替换掉服务器上保存的文件即可。通过类加载器可以比较简单的实现这种需求。 阅读全文
posted @ 2018-01-18 14:57 darrell007 阅读(141) 评论(0) 推荐(0)
摘要: 1 基本信息 每个开发人员对Java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这背后就涉及到了java技术体系中的类加载。Java的类加载机制是技术体系中比较核心的部分,虽然和大部分开发人员直接打交道不多,但是对其背后的机理有一定理解有助于排查程序中出现的类加载失 阅读全文
posted @ 2018-01-18 14:54 darrell007 阅读(241) 评论(0) 推荐(0)
摘要: 类加载器概述: java类的加载是由虚拟机来完成的,虚拟机把描述类的Class文件加载到内存,并对数据进行校验,解析和初始化,最终形成能被java虚拟机直接使用的java类型,这就是虚拟机的类加载机制.JVM中用来完成上述功能的具体实现就是类加载器.类加载器读取.class字节码文件将其转换成jav 阅读全文
posted @ 2018-01-18 14:42 darrell007 阅读(136) 评论(0) 推荐(0)
摘要: 1 前言 GC(Garbage Collect)是jvm对于内存管理的核心功能,正是因为它才让Java程序员从内存释放的苦海中脱离出来,所以作为一个程序员都有必要去了解一下他的原理。 说一句题外话,我曾经被问到GC的具体实现,那个时候我就知道一些基本的思想,结果被人鄙视了。对于这个问题我到现在仍保留 阅读全文
posted @ 2018-01-18 14:40 darrell007 阅读(290) 评论(0) 推荐(0)
摘要: 在Java中有两类线程:用户线程 (User Thread)、守护线程 (Daemon Thread)。 所谓守护 线程,是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称职的守护者,并且这种线程并不属于程序中不可或缺的部分。因此,当所有的非守护线程结束时,程序也就终止了 阅读全文
posted @ 2018-01-18 14:38 darrell007 阅读(45963) 评论(0) 推荐(4)
摘要: 因为网上已经太多的关于HashMap的相关文章了,为了避免大量重复,又由于网上关于java8的HashMap的相关文章比较少,至少我没有找到比较详细的。所以才有了本文。 本文主要的内容: 1.HashMap的数据结构,以及java 8的新特征2.HashMap的put方法的实现原理3.resize( 阅读全文
posted @ 2018-01-18 14:36 darrell007 阅读(887) 评论(0) 推荐(0)
摘要: 1. HashMap的数据结构 数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组 数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难; 链表 链表存储区间离散,占用内存比较宽松,故空间复杂度 阅读全文
posted @ 2018-01-18 14:21 darrell007 阅读(13686) 评论(0) 推荐(4)
摘要: 分布式计算就是通过计算机网络将计算工作分布到多台主机上,多个主机一起协同完成工作。我试着列一下相关知识吧。 网络通讯,网络是分布式的基础,对分布式的理解建立在对网络的理解上,包括: OSI模型的7层 TCP/IP,DNS,NAT HTTP,SPDY/HTTP2 Telnet 网络编程,是通过程序在多 阅读全文
posted @ 2018-01-18 14:14 darrell007 阅读(746) 评论(0) 推荐(0)
摘要: Java内存模型即Java Memory Model,简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。 如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。Java内存模型定义了多线程之间共 阅读全文
posted @ 2018-01-18 14:11 darrell007 阅读(231) 评论(0) 推荐(0)
摘要: 在写java的时候,基本上都喜欢用arraylist,甚至我都不知道有个vector的存在。查了一下发现又是线程安全问题。。。咋个线程安全天天围着我转呢。。。多得阿里巴巴,让我开始认识java的所谓线程安全问题。 1. Vector & ArrayList 1. Vector & ArrayList 阅读全文
posted @ 2018-01-18 14:08 darrell007 阅读(326) 评论(0) 推荐(0)
摘要: 其中,程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭。 阅读全文
posted @ 2018-01-18 14:06 darrell007 阅读(142) 评论(0) 推荐(0)
摘要: 一:java多线程互斥,和java多线程引入偏向锁和轻量级锁的原因? 一:java多线程互斥,和java多线程引入偏向锁和轻量级锁的原因? 一:java多线程互斥,和java多线程引入偏向锁和轻量级锁的原因? >synchronized的重量级别的锁,就是在线程运行到该代码块的时候,让程序的运行级别 阅读全文
posted @ 2018-01-18 14:05 darrell007 阅读(1023) 评论(1) 推荐(0)
摘要: 堆内存 堆内存 Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor、To Survi 阅读全文
posted @ 2018-01-18 13:58 darrell007 阅读(6666) 评论(1) 推荐(2)
摘要: //匿名内部类: interface Contents { int value(); } public class Parcel7 { public Contents contents() { return new Contents() { private int i = 11; @Override 阅读全文
posted @ 2018-01-18 13:56 darrell007 阅读(129) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-01-18 13:53 darrell007 阅读(132) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-01-18 13:53 darrell007 阅读(88) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-01-18 13:52 darrell007 阅读(121) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-01-18 13:49 darrell007 阅读(90) 评论(0) 推荐(0)
摘要: java继承中对构造函数是不继承的,只是调用(隐式或显式)。 阅读全文
posted @ 2018-01-18 13:49 darrell007 阅读(153) 评论(0) 推荐(0)
摘要: package com.cwcec.tag; class Fruit { } class Apple extends Fruit{} class Animal { public Fruit eat(Fruit fruit) { System.out.println("Animal eat..."); 阅读全文
posted @ 2018-01-18 13:48 darrell007 阅读(139) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-01-18 13:47 darrell007 阅读(101) 评论(0) 推荐(0)
摘要: 这篇文章谈一谈Java泛型声明<? extends E>和<? super E>的作用和区别 <? extends E> <? extends E> 是 Upper Bound(上限) 的通配符,用来限制元素的类型的上限,比如 List<? extends Fruit> fruits; 表示集合中的 阅读全文
posted @ 2018-01-18 13:42 darrell007 阅读(10336) 评论(0) 推荐(6)
摘要: //JDk1.5后,使用泛型来接收类中要操作的引用数据类型 //泛型类,什么时候用?当类中操作的引用数据类型不确定的时候,就使用泛型类。 class Tool { private Q q; public Tool(Q q) { this.q = q; } public Q getQ() { return q; } ... 阅读全文
posted @ 2018-01-18 13:40 darrell007 阅读(175) 评论(0) 推荐(0)
摘要: class Car { private String name; private int number; private double weight; public String getName() { return name; } public void setName(String name) 阅读全文
posted @ 2018-01-18 13:39 darrell007 阅读(152) 评论(0) 推荐(0)
摘要: 集合的一些技巧: 需要唯一吗? 需要:Set 需要制定顺序: 需要: TreeSet 不需要:HashSet 但是想要一个和存储一致的顺序(有序):LinkedHashSet 不需要:List 需要频繁增删吗? 需要:LinkedList 不需要:ArrayList 如何记录每一个容器的结构和所属体 阅读全文
posted @ 2018-01-18 13:37 darrell007 阅读(191) 评论(0) 推荐(0)
摘要: Set集合 1.HashSet 只去重复, 没有顺序 HashSet的add方法会调用hashCode和equals, 所以存储在HashSet中的对象需要重写这两个方法. 2.TreeSet 去重复, 并且可以按照某种顺序排序 TreeSet的add方法会将对象转为Comparable, 然后调用 阅读全文
posted @ 2018-01-18 13:35 darrell007 阅读(487) 评论(0) 推荐(0)
摘要: Set:元素不可以重复,是无序。 Set接口中的方法和Collection一致。 |--HashSet: 内部数据结构是哈希表 ,是不同步的。 如何保证该集合的元素唯一性呢? 是通过对象的hashCode和equals方法来完成对象唯一性的。 如果对象的hashCode值不同,那么不用判断equal 阅读全文
posted @ 2018-01-18 13:34 darrell007 阅读(185) 评论(0) 推荐(0)
摘要: 1.《你的灯还亮着么》 方法论 2.《程序员修炼之道 从小工到专家》 方法论 3.《发布!软件的设计与部署》 案例&经验总结 4.《思考,快与慢》 理解自身行为,非常推荐 5.《集体智慧编程中文版》 6.《推荐系统实践》 7.《Maven权威指南中文版》 maven 不是简单的版本管理工具 8.《j 阅读全文
posted @ 2018-01-18 13:31 darrell007 阅读(282) 评论(0) 推荐(0)
摘要: 栈:LIFO(后进先出) 队列:FIFO(先进先出) 栈的顺序存储结构实现: 栈的链式存储结构实现: 基于LinkedList实现的栈结构: 队列的顺序存储结构实现 循环队列的顺序存储结构实现 队列的链式存储结构实现 基于LinkedList实现队列结构 阅读全文
posted @ 2018-01-18 13:30 darrell007 阅读(225) 评论(0) 推荐(0)
摘要: 今天翻看Java笔试题,发现有这样问题,比较Collection 和Collections的区别。在这里把二者区别记录下来。 1、java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Col 阅读全文
posted @ 2018-01-18 13:27 darrell007 阅读(471) 评论(0) 推荐(0)
摘要: 注意,此实现不是同步的。 List: |--Vector:内部是数组数据结构,是同步的。增删,查询都很慢! |--ArrayList:内部是数组数据结构,是不同步的。替代了Vector。查询的速度快。 |--LinkedList:内部是链表数据结构,是不同步的。增删元素的速度很快。 注意,此实现不是 阅读全文
posted @ 2018-01-18 13:26 darrell007 阅读(146) 评论(0) 推荐(0)
摘要: 1.String字符串常量池 JVM为了提高性能和减少内存开销,内部维护了一个字符串常量池,每当创建字符串常量时,JVM首先检查字符串常量池,如果常量池中已经存在,则返回池中的字符串对象引用,否则创建该字符串对象并放入池中。 因此下述结果返回true。 但与创建字符串常量方式不同的是,当使用new 阅读全文
posted @ 2018-01-18 13:24 darrell007 阅读(343) 评论(0) 推荐(0)
摘要: 构造方法摘要: String(byte[] bytes) 通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。 String(char[] value) 分配一个新的 String,使其表示字符数组参数中当前包含的字符序列。 方法摘要: char charAt(int i 阅读全文
posted @ 2018-01-18 13:22 darrell007 阅读(193) 评论(0) 推荐(0)
摘要: /* 停止线程: 1,stop方法。 2,run方法结束。 怎么控制线程的任务结束呢? 任务中都会有循环结构,只要控制住循环就可以结束任务。 控制循环通常就用定义标记来完成。 但是如果线程处于了冻结状态,无法读取标记。如何结束呢? 可以使用interrupt()方法将线程从冻结状态强制恢复到运行状态中来,让线程具备cpu的执行资格。 当时强制动作会发生了InterruptedExc... 阅读全文
posted @ 2018-01-18 13:21 darrell007 阅读(531) 评论(0) 推荐(0)
摘要: Thread.yield()方法作用是:暂停当前正在执行的线程对象,并执行其他线程。 yield()应该做的是让当前运行线程回到可运行状态,以允许具有相同优先级的其他线程获得运行机会。因此,使用yield()的目的是让相同优先级的线程之间能适当的轮转执行。但是,实际中无法保证yield()达到让步目的,因为让步的线程还有可能被线程调度程序再次选中。 结论:yield()从未导致线程转到等... 阅读全文
posted @ 2018-01-18 13:21 darrell007 阅读(111) 评论(0) 推荐(0)
摘要: 最近在看《深入理解Java虚拟机:JVM高级特性与最佳实践》讲到了线程相关的细节知识,里面讲述了关于java内存模型,也就是jsr 133定义的规范。 系统的看了jsr 133规范的前面几个章节的内容,觉得受益匪浅。废话不说,简要的介绍一下java内存规范。 什么是内存规范 在jsr-133中是这么 阅读全文
posted @ 2018-01-18 13:20 darrell007 阅读(179) 评论(0) 推荐(0)
摘要: 先综述个结论: 一般说的synchronized用来做多线程同步功能,其实synchronized只是提供多线程互斥,而对象的wait()和notify()方法才提供线程的同步功能。 一般说synchronized是加锁,或者说是加对象锁,其实对象锁只是synchronized在实现锁机制中的一种锁 阅读全文
posted @ 2018-01-18 11:13 darrell007 阅读(536) 评论(0) 推荐(0)
摘要: synchronized 方法控制对类成员变量的访问:每个类实例对应一把锁,每个 synchronized 方法都必须获得调用该方法的类实例的锁方能执行,否则所属线程阻塞,方法一旦执行,就独占该锁,直到从该方法返回时才将锁释放,此后被阻塞的线程方能获得该锁,重新进入可执行状态。 wait()/not 阅读全文
posted @ 2018-01-18 10:55 darrell007 阅读(395) 评论(0) 推荐(0)
摘要: /* wait 和 sleep 区别? 1,wait可以指定时间也可以不指定。 sleep必须指定时间。 2,在同步中时,对cpu的执行权和锁的处理不同。 wait:释放执行权,释放锁。 sleep:释放执行权,不释放锁。 */ class Demo { void show() { synchronized(this)// ... 阅读全文
posted @ 2018-01-18 10:53 darrell007 阅读(407) 评论(0) 推荐(0)
摘要: Example: 阅读全文
posted @ 2018-01-18 10:52 darrell007 阅读(192) 评论(0) 推荐(0)
摘要: /* 生产者,消费者。 多生产者,多消费者的问题。 if判断标记,只有一次,会导致不该运行的线程运行了。出现了数据错误的情况。 while判断标记,解决了线程获取执行权后,是否要运行! notify:只能唤醒一个线程,如果本方唤醒了本方,没有意义。而且while判断标记+notify会导致死锁。 n 阅读全文
posted @ 2018-01-18 10:51 darrell007 阅读(251) 评论(0) 推荐(0)
摘要: Output: Thread-0...生产者...61498 Thread-1...消费者...61498 Thread-0...生产者...61499 Thread-1...消费者...61499 Thread-0...生产者...61500 Thread-1...消费者...61500 Thre 阅读全文
posted @ 2018-01-18 10:50 darrell007 阅读(167) 评论(0) 推荐(0)
摘要: Output: Mike...nan Mike...nan Mike...nan Mike...nan Mike...nan Mike...nan Mike...nan Mike...nan Mike...nan Mike...nan 丽丽...女 丽丽...女 丽丽...女 丽丽...女 丽丽.. 阅读全文
posted @ 2018-01-18 10:48 darrell007 阅读(137) 评论(0) 推荐(0)
摘要: Output: Thread-0..if locka.... Thread-1..else lockb.... Thread-0..if locka.... Thread-1..else lockb.... 阅读全文
posted @ 2018-01-18 10:47 darrell007 阅读(146) 评论(0) 推荐(0)
摘要: 一种更好的单例实现方法 饿汉式单例类不能实现延迟加载,不管将来用不用始终占据内存;懒汉式单例类线程安全控制烦琐,而且性能受影响。可见,无论是饿汉式单例还是懒汉式单例都存在这样那样的问题,有没有一种方法,能够将两种单例的缺点都克服,而将两者的优点合二为一呢?答案是:Yes!下面我们来学习这种更好的被称 阅读全文
posted @ 2018-01-18 10:46 darrell007 阅读(298) 评论(0) 推荐(0)
摘要: 线程安全问题产生原因: 1、多个线程操作共享的数据; 2、操作共享数据的线程代码有多条。 当一个线程正在执行操作共享数据的多条代码过程中,其它线程也参与了运算, 就会导致线程安全问题的发生。 class Ticket extends Thread { private int num = 100; p 阅读全文
posted @ 2018-01-18 10:43 darrell007 阅读(160) 评论(0) 推荐(0)
摘要: 1. 线程状态类型 1. 新建状态(New):新创建了一个线程对象。2. 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。3. 运行状态(Running):就绪状态的线程获取了CPU,执行程序 阅读全文
posted @ 2018-01-18 10:38 darrell007 阅读(183) 评论(0) 推荐(0)
摘要: ava中如何创建线程? 创建线程的方式一:继承Thread类 步骤: 1、定义一个继承于Thread的类; 2、覆盖Thread类中的run方法; 3、直接创建Thread类的子类对象创建线程; 4、调用start方法开启线程。 创建线程的第二种方式:实现Runnable接口 1,定义类实现Runn 阅读全文
posted @ 2018-01-18 10:34 darrell007 阅读(153) 评论(0) 推荐(0)
摘要: 假如说你想复制一个简单变量。很简单: int apples = 5; int pears = apples; 不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short,float,double.long)同样适用于该类情况。 但是如果你复制的是一个对象,情况就有些复杂 阅读全文
posted @ 2018-01-18 10:31 darrell007 阅读(415) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-01-18 10:26 darrell007 阅读(89) 评论(0) 推荐(0)
摘要: 什么是进程?当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的。什么是线程?线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。什么是多线程?多线程是 阅读全文
posted @ 2018-01-18 10:24 darrell007 阅读(161) 评论(0) 推荐(0)
摘要: Output: 除数不能为0 finally 除数不能为0 finally 最终结论 任何执行try 或者catch中的return语句之前,都会先执行finally语句,如果finally存在的话。如果finally中有return语句,那么程序就return了,所以finally中的return 阅读全文
posted @ 2018-01-18 10:22 darrell007 阅读(138) 评论(0) 推荐(0)
摘要: 1. 引子 1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码 阅读全文
posted @ 2018-01-18 10:16 darrell007 阅读(144) 评论(0) 推荐(0)
摘要: 1.向博客园申请js权限 我们需要进入博客园自定义博客模板的页面,向博客园管理团队申请页面运行js的权限。【博客园】->【设置】->【博客设置】,点击页面上的js权限申请,然后填写申请的理由,耐心等几分钟,再刷新一下,页面就会显示支持js代码 ,博客园也会在用户邮箱给你发送是否开通js权限的邮件。 阅读全文
posted @ 2018-01-18 09:44 darrell007 阅读(786) 评论(0) 推荐(0)
摘要: 1.Throwable 类是 Java 语言中所有错误或异常的超类。它的两个子类是Error和Exception;2.Error 是 Throwable 的子类,用于指示合理的应用程序不应该试图捕获的严重问题。大多数这样的错误都是异常条件。虽然 ThreadDeath 错误是一个“正规”的条件,但它 阅读全文
posted @ 2018-01-18 08:53 darrell007 阅读(620) 评论(0) 推荐(0)
摘要: 异常的注意事项: 1,子类在覆盖父类方法时,父类的方法如果抛出了异常, 那么子类的方法只能抛出父类的异常或者该异常的子类。 2,如果父类抛出多个异常,那么子类只能抛出父类异常的子集。 简单说:子类覆盖父类只能抛出父类的异常或者子类或者子集。 注意:如果父类的方法没有抛出异常,那么子类覆盖时绝对不能抛 阅读全文
posted @ 2018-01-18 08:50 darrell007 阅读(286) 评论(0) 推荐(0)
摘要: /* 异常处理的捕捉形式: 这是可以对异常进行针对性处理的方式。 具体格式是: try { //需要被检测异常的代码。 } catch(异常类 变量)//该变量用于接收发生的异常对象 { //处理异常的代码。 } finally { //一定会被执行的代码。 } 异常处理的原则: 1,函数内容如果抛 阅读全文
posted @ 2018-01-18 08:49 darrell007 阅读(277) 评论(0) 推荐(0)
摘要: Throwablede类是 Java 语言中所有错误或异常的超类。 两个子类的实例,Error 和 Exception Error 是 Throwablede 的子类,用于指示合理的应用程序不应该试图捕获的严重问题。 Exceptionde 类及其子类是Throwablede 的一种形式,它指出了合 阅读全文
posted @ 2018-01-18 08:45 darrell007 阅读(152) 评论(0) 推荐(0)