随笔分类 -  Java基础

摘要:Spring在初始化有几种方式,注意初始化先后顺序 阅读全文
posted @ 2018-12-14 17:57 一心行走 阅读(399) 评论(0) 推荐(0)
摘要:1、并发编程挑战 1.1、上下文切换: 1.1.1、什么是上下文切换? 单核也支持多线程执行,原因是通过时间片轮换,时间片是CPU分配给各线程的时间,在切换过程中,会先保存上个任务信息,再加载当前任务信息,所以任务从保存到再加载的过程就是一次上下文切换。 1.1.2、并行vs串行 并发执行速度比串行 阅读全文
posted @ 2018-12-07 15:59 一心行走 阅读(255) 评论(0) 推荐(0)
摘要:概括起来说,对于多线程资源共享的问题,同步机制采用了“以时间换空间”的方式,而ThreadLocal采用了“以空间换时间”的方式。前者仅提供一份变量,让不同的线程排队访问,而后者为每一个线程都提供了一份变量,因此可以同时访问而互不影响。 ThreadLocal 并不能替代同步机制,两者面向的问题领域 阅读全文
posted @ 2018-11-15 18:25 一心行走 阅读(1126) 评论(0) 推荐(0)
摘要:输出2147359167,123456 可以简单满足混淆,和恢复的需求 阅读全文
posted @ 2018-11-15 18:18 一心行走 阅读(1115) 评论(0) 推荐(0)
摘要:package jesse.test1; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; // 生产者 class Producer implements Runnable{ private BlockingQueue queue; ... 阅读全文
posted @ 2018-11-15 17:58 一心行走 阅读(392) 评论(0) 推荐(0)
摘要:package jesse.test1; import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; import java.nio.channels.SelectionKey; import java.nio.channels.Selector; import java... 阅读全文
posted @ 2018-11-15 17:55 一心行走 阅读(888) 评论(0) 推荐(0)
摘要:package jesse.test1; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.InetAddress; import java.net.ServerSocke... 阅读全文
posted @ 2018-11-15 17:54 一心行走 阅读(673) 评论(0) 推荐(0)
摘要:相互持有对方锁,导致死锁 阅读全文
posted @ 2018-11-15 17:52 一心行走 阅读(841) 评论(0) 推荐(0)
摘要:Cglib动态代理采用的是创建目标类的子类的方式。优点:不用实现额外接口,只操作我们关心类,高性能。 阅读全文
posted @ 2018-11-15 17:50 一心行走 阅读(1149) 评论(0) 推荐(0)
摘要:JDK代理,非常简单地实现了动态代理(首先是实现对应的InvocationHandler;然后,以接口来为被调用目标构建代理对象,代理对象简介运行调用目标,并提供额外逻辑插入) 缺点:它是只能以接口为中心的。优点:依赖JDK,更稳定可靠,跟着JDK升级,代码简单。 阅读全文
posted @ 2018-11-15 17:48 一心行走 阅读(360) 评论(0) 推荐(0)
摘要:首先NoClassDefFoundError是一个错误,而ClassNotFoundException是一个异常 NoClassDefFoundError产生的原因: 如果JVM或者Classloader实例尝试加载类(或者new创建对象)却找不到类的定义,要查找的类在编译时期是存在,运行期间却找不 阅读全文
posted @ 2018-11-09 10:25 一心行走 阅读(1223) 评论(0) 推荐(0)
摘要:ArrayList也叫作数组列表 ArrayList是基于数组实现的,是一个动态数组,其容量能够自动增长 ArrayList不是线程安全的,只能用在单线程环境下,多线程环境需要使用Collections同步方法。Collections.synchronizedList(List l)返回一个线程安全 阅读全文
posted @ 2018-11-06 18:29 一心行走 阅读(212) 评论(0) 推荐(0)
摘要:1)、java监控工具使用 jconsole是一种集成了上面所有命令功能的可视化工具,可以分析jvm的内存使用情况和线程等信息 visualvm 提供了和jconsole的功能类似,提供了一大堆的插件。 插件中,Visual GC(可视化GC)还是比较好用的,可视化GC可以看到内存的具体使用情况。 阅读全文
posted @ 2018-11-04 16:22 一心行走 阅读(729) 评论(0) 推荐(0)
摘要:1).反射 通过反射的方式可以获取class对象中的属性、方法、构造函数等,一下是实例: 2).动态代理 使用场景: 在之前的代码调用阶段,我们用action调用service的方法实现业务即可。 由于之前在service中实现的业务可能不能够满足当先客户的要求,需要我们重新修改service中的方 阅读全文
posted @ 2018-11-04 16:17 一心行走 阅读(710) 评论(0) 推荐(0)
摘要:1)什么是jms JMS即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API。 它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发, 翻译为Java消息服务。 2 阅读全文
posted @ 2018-11-04 16:03 一心行走 阅读(443) 评论(0) 推荐(0)
摘要:1). java并发包介绍 JDK5.0 以后的版本都引入了高级并发特性,大多数的特性在java.util.concurrent 包中,是专门用于多线程发编程的, 主要包含原子量、并发集合、同步器、可重入锁,并对线程池的构造提供了强力的支持。 2).线程池的创建 线程池的5中创建方式: a、 Sin 阅读全文
posted @ 2018-11-04 16:00 一心行走 阅读(702) 评论(0) 推荐(0)
摘要:1).synchronized 加同步格式: synchronized( 需要一个任意的对象(锁) ){ 代码块中放操作共享数据的代码。 } synchronized的缺陷 synchronized是java中的一个关键字,也就是说是Java语言内置的特性。 如果一个代码块被synchronized 阅读全文
posted @ 2018-11-04 15:53 一心行走 阅读(480) 评论(0) 推荐(0)
只有注册用户登录后才能阅读该文。
posted @ 2018-11-04 15:46 一心行走 阅读(4) 评论(0) 推荐(0)
摘要:如果String通过"+"来拼接,如果拼接的字符串是常量,则效率会非常高,因为会进行编译时优化,这个时候StringBuilder的append()是达不到的。 如果将String的"+"放在循环中,会创建很多的StringBuilder对象,并且执行之后会调用toString()生成新的Strin 阅读全文
posted @ 2018-10-16 19:52 一心行走 阅读(10395) 评论(0) 推荐(1)
摘要:Java基本程序结构 1、类名是以大写字母开头的名词代码能够执行的类,要有main函数,且声明必须是public 2、注释: “//”,"/**/" 行注释 "/***/"可以自动生成文档 3、数据类型8种 4种整型:int(存储4字节) ,short(存储2字节),long(存储8字节),byte 阅读全文
posted @ 2018-09-19 08:43 一心行走 阅读(269) 评论(0) 推荐(0)