![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
文章平均质量分 78
sugar-foxs
这个作者很懒,什么都没留下…
展开
-
java锁
synchronizedsynchronized是虚拟机的内置锁对于同步块:编译之后,会在同步块的前后形成 monitorenter 和 monitorexit 两个字节码指令,每个对象都具有一个monitor与之关联,拥有了monitor的线程便锁住了对象。对于同步方法:编译之后,该同步方法有一个同步标志来表明该方法是同步方法。sync...原创 2020-01-11 13:58:49 · 184 阅读 · 0 评论 -
ForkJoinPool
ForkJoinPool在内部使用了一个无界任务列表,供构造器中所指定数目(如果是无参构造器,默认是cpu数)的线程来运行。ForkJoinPool类是配合分治算法的使用而设计的:任务可以递归地分解为子集。这些子集可以并行处理,然后每个子集的结果被归并到一个结果里。原创 2017-08-25 20:58:39 · 248 阅读 · 0 评论 -
浅复制和深复制
1,浅复制和深复制的概念浅复制:被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。 深复制:被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被引用的对象。换言之,深复制把要复制的对象所引用的对象都复原创 2017-08-27 15:38:33 · 266 阅读 · 0 评论 -
java9新特性
Java 8 发布三年多之后,即将快到2017年7月下一个版本发布的日期了。 你可能已经听说过 Java 9 的模块系统,但是这个新版本还有许多其它的更新。 这里有九个令人兴奋的新功能将与 Java 9 一起发布。1. Java 平台级模块系统Java 9 的定义功能是一套全新的模块系统。当代码库越来越大,创建复杂,盘根错节的“意大利面条式代码”的几率呈指数级的增长。这时候就得面对转载 2017-08-25 21:00:06 · 1080 阅读 · 1 评论 -
回调机制
Java的回调机制,可能都听说过,当然这个机制不仅限于Java,其他各门语言,都应该有使用。但是怎么理解,就有点困惑。还有什么是抽象类回调,什么是接口回调,以及二者之间的差别。也不是一句两句就能说清楚,就算说的人清楚,但是不能保证,听的人也能听的清楚。下面看这个小故事,来深入理解一下回调机制,然后上面的那些问题,也就不攻自破了。故事背景在日常编程中,我们经常转载 2017-09-06 10:06:32 · 289 阅读 · 0 评论 -
字符编码
原文链接:http://www.cnblogs.com/skynet/archive/2011/05/03/2035105.html转载 2017-08-29 10:20:39 · 201 阅读 · 0 评论 -
Java8新特性
在Java Code Geeks上已经有大量的关于Java 8 的教程了,像玩转Java 8——lambda与并发,Java 8 Date Time API 教程: LocalDateTime和在Java 8中抽象类与接口的比较。我们也在其他地方引用了15个必读的Java 8教程。当然,我们也探究了Java 8的一些不足之处,比如Java 8的“黑暗面”。现在,转载 2017-08-25 21:16:48 · 308 阅读 · 0 评论 -
Java反射
1,什么是Java反射机制? JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的以及动态调用对象的方法的功能称为Java的反射机制。2,反射的使用方法:假设有个类Person:package com.gch;class Person{}获取类对象的方法: 1.1 ...原创 2017-09-02 09:43:08 · 196 阅读 · 0 评论 -
hashMap线程不安全,造成死循环
https://coolshell.cn/articles/9606.html转载 2017-09-06 12:13:47 · 456 阅读 · 0 评论 -
final,finally,finalize区别
原文地址:http://blog.csdn.net/lichaohn/article/details/5424519原创 2017-08-07 21:47:10 · 221 阅读 · 0 评论 -
泛型
1. Java中的泛型是什么 ? 使用泛型的好处是什么?泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。好处:1、类型安全,提供编译期间的类型检测2、前后兼容3、泛化代码,代码可以更多的重复利用4、性能较高,用GJ(泛型JAVA)编写的代码可以为java编译器和虚拟机带来更多的类型信息,这些信息对java程序做进一转载 2017-09-03 11:25:52 · 553 阅读 · 0 评论 -
java中到底是值传递还是引用传递?
首先我们来看下面这段代码:public class Test1 { String a = "123"; public static void change(Test1 test) { test.a="abc"; } public static void main(String[] args) { Test1 test1=转载 2017-09-12 15:40:25 · 284 阅读 · 0 评论 -
String,StringBuffer,StringBuilder的区别
1,可变与不可变String是字符串常量,使用final修饰,所以是不可变的.StringBuffer和StringBuilder是字符串变量.都继承自AbstractStringBuilder类,内部使用字符数组保存字符串,没有final修饰.所以是可变的.2,是否线程安全String是不可变的,显然线程安全.StringBuffer使用synchronized对方法加了锁,原创 2017-07-26 16:30:44 · 131 阅读 · 0 评论 -
java实现定时任务的方法
1,使用Timer和TimerTask(实现了Runnable接口)public class TimerTest { public static void main(String[] args){ TimerTask task = new TimerTask() { @Override public void run(原创 2017-07-05 21:29:11 · 214 阅读 · 0 评论 -
java各个包的作用
1,java.applet 是创建APPLET小应用程序的包 2,java.awt 是JAVA的abstract window toolkit,抽象窗口工具包 3,java.beans 是JAVA允许你建立软件组件的包4,java.io 是JAVA的输入输出流的包5,java.lang 是JAVA的langu转载 2017-06-22 21:48:55 · 966 阅读 · 0 评论 -
Comparable和Comparator的比较
一,Comparable接口,位于Java.lang包下其中只有唯一的方法:compareTo()当对象实现了这个接口,覆盖compareTo方法,实现自己的比较规则,对这个对象数组排序就变得简单了:Arrays.sort(a); //a为实现了这个接口的对象数组把对象放到TreeSet,TreeMap这些集合时,也可以进行排序。comparTo()的通用约定:1,自反性 sgn(x.compar原创 2017-06-13 19:20:53 · 233 阅读 · 0 评论 -
java IO系统--文件I/O
一,先回顾下传统ioio其实就是为了传输数据流,这时肯定会想,数据流从哪里来,以什么格式传输.即数据存储方式和数据格式.数据源:1,字节数组2,String对象3,文件4,管道(PipedInputStream.PipedOutputStream,PipedReader,PipedWriter)5,Internet不管数据在哪,读取写入数据的方法都是使用inpu原创 2017-02-23 10:11:56 · 258 阅读 · 0 评论 -
java IO系统--网络I/O
网络I/O:1,BIO(同步阻塞)2,伪异步IO(同步阻塞)3,NIO(同步非阻塞)4,AIO(异步非阻塞)阻塞与非阻塞,同步与异步区别:阻塞非阻塞:程序是否继续向下执行.同步:一直等到有结果才返回.异步:立即返回,有结果会得到通知.所以,同步阻塞:发出一个请求,一直等到有结果才返回,并继续执行.同步非阻塞:发出一个请求,程序继续执行,隔一段时间会检查结原创 2017-02-23 10:57:37 · 240 阅读 · 0 评论 -
java异常
在 Java 中,所有的异常都有一个共同的祖先 Throwable(可抛出)。Throwable 指定代码中可用异常传播机制通过 Java 应用程序传输的任何问题的共性,它们都在java.lang包下面。Error类标记了严重错误,类似内存溢出,虚拟机异常,等等,是不该出现的。这些错误表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时,如Java虚拟机运行错误(Virtual Machi转载 2017-07-26 16:46:19 · 183 阅读 · 0 评论 -
java虚拟机字节码执行引擎之方法调用
方法调用阶段唯一的任务是确定被调用方法的版本,即调用哪一个方法.一切方法调用在Class文件里面存储的都只是符号引用,不是方法在实际运行时内存布局中的入口地址,需要在类加载期间,甚至到运行期间才能确定目标方法的之间引用.1,非虚方法的调用称为解析,在类加载阶段将符号引用解析为该方法的直接引用. 非虚方法:静态方法,私有方法,实例构造器,父类方法,被final修饰的方法. 解原创 2016-11-17 11:09:10 · 490 阅读 · 0 评论 -
AtomicInteger源码分析
AtomicInteger 是一个支持原子操作的 Integer 类,就是保证对AtomicInteger类型变量的增加和减少操作是原子性的,不会出现多个线程下的数据不一致问题。AtomicInteger底层使用了CAS乐观锁的思想。CAS一直 不太懂,今天正好好好研究一下。下面先分析下源码:原创 2017-07-25 10:30:26 · 254 阅读 · 0 评论 -
Object类的equals方法和hashCode方法
一,equals方法在Object类中public boolean equals(Object obj) { return (this == obj); } 内部也是使用“==”比较引用是否指向同一个对象。所以在不覆盖equals方法时,使用equals方法和==的比较结果是一样的。?什么时候应该覆盖equals方法呢?当原创 2017-06-13 19:50:13 · 1051 阅读 · 0 评论 -
基于jdk的网络编程和使用Netty的比较
一,jdk1,使用OIO的阻塞版本:public class JDKOioServer { public void server(int port) throws IOException { final ServerSocket serverSocket = new ServerSocket(port); try{ for原创 2017-06-29 22:28:22 · 665 阅读 · 0 评论 -
jtemplate示例
1,在maven中写依赖包--> org.codehaus.jackson jackson-mapper-asl 1.9.132,在springmvc.xml中写context:component-scan base-package="com.guchunhui.controller"/>mvc:annotation-driven />避免IE执行A原创 2016-10-21 14:36:28 · 241 阅读 · 0 评论