Java
文章平均质量分 53
Summer_YuXia
人因思考而伟大
展开
-
JVM指令集及各指令的详细使用说明(记录)
指令码 助记符 说明0x00 nop 什么都不做0x01 aconst_null 将null推送至栈顶0x02 iconst_m1 将int型-1推送至栈顶0x03 iconst_0 将int型0推送至栈顶0x04 iconst_1 将int型1推送至栈顶0x05 iconst_2 将int型2推送至栈顶0x06 iconst_3 将int型3推送至栈顶0x07 iconst_4 将int型4推送至栈顶0x08 iconst_5 将int型5推...原创 2020-05-29 08:59:13 · 417 阅读 · 0 评论 -
JAVA集合框架中的常用集合及其特点、适用场景、实现原理简介
JDK提供了大量优秀的集合实现供开发者使用,合格的程序员必须要能够通过功能场景和性能需求选用最合适的集合,这就要求开发者必须熟悉Java的常用集合类。本文将就Java Collections Framework中常用的集合及其特点、适用场景、实现原理进行介绍,供学习者参考。当然,要真正深入理解Java的集合实现,还是要推荐去阅读JDK的源码。Java提供的众多集合类由两大接口衍生而来:Co转载 2017-05-02 10:04:47 · 1833 阅读 · 0 评论 -
jdk1.8中ConcurrentHashMap的实现原理
并发环境下为什么使用ConcurrentHashMap1. HashMap在高并发的环境下,执行put操作会导致HashMap的Entry链表形成环形数据结构,从而导致Entry的next节点始终不为空,因此产生死循环获取Entry2. HashTable虽然是线程安全的,但是效率低下,当一个线程访问HashTable的同步方法时,其他线程如果也访问HashTable的同步方法,那原创 2017-05-01 23:23:24 · 1170 阅读 · 0 评论 -
RelativeLayout各个属性
android:layout_above="@id/xxx" --将控件置于给定ID控件之上android:layout_below="@id/xxx" --将控件置于给定ID控件之下android:layout_toLeftOf="@id/xxx" --将控件的右边缘和给定ID控件的左边缘对齐android:layout_toRightOf="@id/x原创 2017-04-29 18:05:50 · 235 阅读 · 0 评论 -
Java并发性和多线程介绍目录
原文地址 译文地址 译者:张坤等Java并发性和多线程介绍多线程的优点多线程的代价并发编程模型如何创建并运行java线程竞态条件与临界区线程安全与共享资源线程安全及不可变性Java内存模型JAVA同步块线程通信Java ThreadLocalThread Signaling (未翻译)死锁避免死锁饥饿和公平嵌套管程锁死Slipped ConditionsJava中的锁Java中的转载 2017-04-27 22:45:45 · 315 阅读 · 0 评论 -
《Java NIO文档》非阻塞式服务器
原文连接 原文作者:Jakob Jenkov 译者:higher即使你知道Java NIO 非阻塞的工作特性(如Selector,Channel,Buffer等组件),但是想要设计一个非阻塞的服务器仍然是一件很困难的事。非阻塞式服务器相较于阻塞式来说要多上许多挑战。本文将会讨论非阻塞式服务器的主要几个难题,并针对这些难题给出一些可能的解决方案。查找关于非阻塞式服务器设计方面转载 2017-04-27 22:43:15 · 501 阅读 · 0 评论 -
TreeMap
TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap的实现,但是为了与Java提高篇系列博文保持一致还是叫做TreeMap比较好。通过这篇博文你可以获得如下知识点: 1、红黑树的基本概念。 2、红黑树增加节点、删除节点的实现过程。 3、红黑转载 2017-04-22 09:00:14 · 288 阅读 · 0 评论 -
【Android】用户登录注册界面开发及用户信息管理案例代码详解
http://blog.csdn.net/it_beecoder/article/details/52674685转载 2017-04-09 15:47:59 · 1949 阅读 · 0 评论 -
Android 记住密码和自动登录界面的实现(SharedPreferences 的用法)
SharedPreferences介绍:SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置参数,它是采用xml文件存放数据的,文件存放在"/data/data<package name>/shared_prefs"目录下。SharedPreferences的用法:由于SharedPreferences是一个接口,而且在这个接口里没有转载 2017-04-05 17:12:39 · 860 阅读 · 0 评论 -
JDBC笔记总结
1. 课程回顾mysql加强1)数据约束(表约束) 默认值: default 默认值 非空: not null唯一: unique主键: primary key (非空+唯一)自增长: auto_increment外键: foreign key 约束两种表2)关联查询(多表查询)2.1 交叉连接(产生笛卡尔积:原因:连接条件不足够) 表数量原创 2016-12-15 21:16:38 · 401 阅读 · 0 评论 -
synchronized的4种用法
1.方法声明时使用,放在范围操作符(public等)之后,返回类型声明(void等)之前.这时,线程获得的是成员锁,即一次只能有一个线程进入该方法,其他线程要想在此时调用该方法,只能排队等候,当前线程(就是在synchronized方法内部的线程)执行完该方法后,别的线程才能进入. 例如: public synchronized void synMetho原创 2016-12-06 15:50:45 · 1882 阅读 · 0 评论 -
Java POI 读取Office excel (2003,2007)及相关jar包
poi-3.7-20101029.jar,下载地址:http://download.csdn.net/detail/evangel_z/4107089geronimo-stax-api_1.0_spec-1.0.jar,下载地址:http://download.csdn.net/detail/evangel_z/4107083xmlbeans-2.3.0.jar,下载地转载 2016-11-30 20:34:20 · 4121 阅读 · 0 评论 -
单例模式的各个实现及其特性
A.饿汉式(类加载的时候就创建实例)。代码如下:public class MaYun {public static final Mayun instance = new Mayun(); //静态的final的MaYunprivate MaYun() {//MaYun诞生要做的事情}public void splitAlipay() {System.out.原创 2017-07-30 16:55:42 · 474 阅读 · 0 评论 -
JAVA多线程(二)竞态条件、死锁及同步机制
4 多线程的安全问题及解决方案这一篇博客中,我会列出Java多线程编程过程中,容易出现的安全问题(竞态条件、死锁等),以及相应的解决方案,例如同步机制等。究竟什么是线程安全?简单的说,如果你的代码在多线程下执行和在单线程下执行永远都能获得一样的结果,那么你的代码就是线程安全的。4.1 竞态条件(racing condition)与多线程同步机制4.1.1 竞态条件的原创 2017-05-03 18:16:21 · 840 阅读 · 0 评论 -
进程间通信与线程间通信
序今天被问及进程间通信的问题,发现自己了解的并不够,所以,对此好好总结一番~操作系统的主要任务是管理计算机的软件、硬件资源。现代操作系统的主要特点是多用户和多任务,也就是程序的并行执行,windows如此linux也是如此。所以操作系统就借助于进程来管理计算机的软、硬件资源,支持多任务的并行执行。要并行执行就需要多进程、多线程。因此多进程和多线程间为了完成一定的任务,就需要进行一定的通信。原创 2017-05-12 10:00:18 · 423 阅读 · 0 评论 -
Lombok用法
一,Lombok用法val:用在局部变量前面,相当于将变量声明为final@NonNull:给方法参数增加这个注解会自动在方法内对该参数进行是否为空的校验,如果为空,则抛出NPE(NullPointerException)@Cleanup:自动管理资源,用在局部变量之前,在当前变量范围内即将执行完毕退出之前会自动清理资源,自动生成try-finally这样的代码来关闭流@Getter/@S转载 2018-01-25 15:52:55 · 408 阅读 · 0 评论 -
spring quartz 的定时器cronExpression表达式写法(转载)
转载来源:https://zhidao.baidu.com/question/240797777248343764.html==============================================================================关于cron表达式:Cron 表达式包括以下 7 个字段:秒分小时月内日期月周内日期年(可选字段)特殊字符Cron 触发转载 2018-02-01 11:14:48 · 501 阅读 · 0 评论 -
CVTE实习项目总结(短链开放服务实现)
五天的实习内容,任务不大不小!感受就不多说了,直接上东西了,最喜欢直播了,欢迎各位指正!pom.xml文件:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.a原创 2017-08-25 18:01:32 · 787 阅读 · 0 评论 -
JAVA NIO技术
http://www.importnew.com/19816.html转载 2017-08-15 15:08:40 · 269 阅读 · 0 评论 -
动态代理两种方式及比较
这学期来一直在看面经,反而很少动手去写东西了,今天就破一次例动动贱手! AOP的拦截功能是由java中的动态代理来实现的。说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该切面逻辑或者在目标类函数执行之前,或者目标类函数执行之后,或者在目标类函数抛出异常时候执行。不同的切入时机对应不同的Interceptor的种类,如BeforeAdviseInterceptor,AfterAdv原创 2017-05-24 01:11:33 · 4014 阅读 · 0 评论 -
线程死锁检测方法
当多条线程以不同的顺序抢占同步资源的时候,就有可能发生死锁。如下图所示,线程1持有锁对象A而希望获得锁对象B;另一方面,线程2持有锁对象B而希望获得锁对象A。并且这两个线程的操作是交错执行的,因此它们会发生死锁。当发生的死锁后,JDK自带了两个工具(jstack和JConsole),可以用来监测分析死锁的发生原因。jstack工具用于生于生成虚拟机当前时原创 2017-07-31 11:36:27 · 1481 阅读 · 0 评论 -
java常见的120道面试题第一季(每30题为一季,整理的好辛苦~~~)
哎,大晚上的看题,也是醉了,分享给大伙咯!!!问答题1 /120什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?参考答案Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可原创 2016-11-25 23:37:10 · 3738 阅读 · 0 评论 -
更换mysql-connector-java-6.0.5jar包后程序出现的两个异常及解决方法
异常一:Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver原创 2017-07-02 00:31:52 · 877 阅读 · 0 评论 -
Java内存模型与Java线程的实现原理
硬件的效率与一致性基于高速缓存的存储交互很好的解决了处理器和内存的速度矛盾,但是也为计算机系统带来了更高的复杂度,因为引入了一个新问题:缓存一致性。在多处理器系统中,每个处理器都有自己的高速缓存,而他们又共享同一主内存(Main Memory),如上图所示。当多个处理器的运算任务都涉及到主内存中的同一块区域,那么将高速缓存中的数据同步回主内存时,到底以谁的缓存数据为准呢?为了保原创 2017-06-06 09:11:18 · 308 阅读 · 0 评论 -
QueryRunner的使用
public Admin_User login(Admin_User admin_User) { QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource()); String sql ="select * from admin_user where userid=? and passwd原创 2017-05-27 01:53:40 · 1727 阅读 · 0 评论 -
java内存模型
为什么需要 Java 内存模型为了让程序员忽略掉各种硬件和操作系统的内存访问差异, 也既无需关心不同架构上内存模型的差异, Java 在代码和硬件内存模型间又提供了一个 Java 内存模型。一. 并发模型的分类在并发编程中,需要处理两个关键问题:线程之间如何通信(线程之间以何种机制来交换信息, 有两种方式:共享内存和消息传递)及线程之间如何同步。原创 2017-05-19 18:21:11 · 420 阅读 · 0 评论 -
从单例模式到Happens-Before
本文主要从简单的单例模式为切入点,分析单例模式可能存在的一些问题,以及如何借助Happens-Before分析、检验代码在多线程环境下的安全性。知识准备为了后面叙述方便,也为了读者理解文章的需要,先在这里解释一下牵涉到的知识点以及相关概念。线程内表现为串行的语义Within Thread As-If-Serial Semantics定义转载 2017-05-12 15:41:14 · 413 阅读 · 0 评论 -
ThreadPoolExecutor使用和思考(上)-线程池大小设置与BlockingQueue的三种实现区别
工作中多处接触到了ThreadPoolExecutor。趁着现在还算空,学习总结一下。 前记: jdk官方文档(javadoc)是学习的最好,最权威的参考。文章分上中下。上篇中主要介绍ThreadPoolExecutor接受任务相关的两方面入参的意义和区别,池大小参数corePoolSize和maximumPoolSize,BlockingQueue选型(Synch转载 2017-07-16 17:32:50 · 418 阅读 · 0 评论 -
使用Tomcat+腾讯云主机把你的项目发布到外网上
随便说说申请腾讯云主机下载jdkjre和Tomcat向webapps里面添加项目修改serverxml测试域名解析常见错误下面来说几个小工具ftp上传工具远程桌面操控随便说说:想必一些学习做网页的同学和我有同样的想法,把自己的项目发布到外网上,让别人也能看到。既然有了想法,那就不能想想而已,要努力去实现它。 在发布我们的Java web项目时,我们使转载 2017-05-30 00:10:34 · 1440 阅读 · 0 评论 -
Eclipse 4.5/4.6 创建 Maven Web 项目
Eclipse 4.5/4.6JDK 1.7.80新建项目,选择 Maven Project,点击 Next勾选 Create a simple project,点击 Next按需填写 Group Id,Artifact Id 等信息,Pa原创 2017-02-28 23:50:03 · 748 阅读 · 0 评论 -
乐观锁与悲观锁——解决并发问题
为什么需要锁(并发控制)? 在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突。这就是著名的并发性问题。典型的冲突有:丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用户A把值从6改为2,用户B把值从2改为6,则用户A丢失了他的更新。脏读:当一个事务读取其它完成一半事务的记录时,就会发生脏读取。例如:用户原创 2017-05-05 09:52:03 · 364 阅读 · 0 评论 -
大神博客
博客地址:http://www.cnblogs.com/fingerboy/原创 2017-05-03 23:20:16 · 329 阅读 · 0 评论 -
深入分析volatile的实现原理
1 通过前面一章我们了解了synchronized是一个重量级的锁,虽然JVM对它做了很多优化,而下面介绍的volatile则是轻量级的synchronized。如果一个变量使用volatile,则它比使用synchronized的成本更加低,因为它不会引起线程上下文的切换和调度。Java语言规范对volatile的定义如下:J转载 2017-04-19 17:04:35 · 290 阅读 · 0 评论 -
深入分析Volatile的实现原理
原文发表于InfoQ:http://www.infoq.com/cn/articles/ftf-java-volatile引言在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。它在某些原创 2017-04-19 16:25:34 · 246 阅读 · 0 评论 -
Java split()用法
特殊情况有 * ^ : | . \一、单个符号作为分隔符 String address="上海\上海市|闵行区\吴中路"; String[] splitAddress=address.split("\\"); System.out.println(splitAddress[0]+splitAddress[1]+splitAddress[2]+splitAddress[3]原创 2017-04-18 22:25:54 · 607 阅读 · 0 评论 -
BIO,NIO和AIO的区别
IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者转载 2017-02-26 13:42:36 · 340 阅读 · 0 评论 -
常见的集合类容器(java)
一、基本概念Java容器类类库的用途是“持有对象”,并将其划分为两个不同的概念:1)Collection:一个独立元素的序列,这些元素都服从一条或者多条规则。 List必须按照插入的顺序保存元素,而set不能有重复的元素。Queue按照排队规则来确定对象产生的顺序(通常与它们被插入的顺序相同)。 2)Map:一组成对的“键值对”对象,允许你使用键来查找值。|Collec原创 2017-03-03 15:41:00 · 456 阅读 · 0 评论 -
Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
java.lang.OutOfMemoryError这个错误我相信大部分开发人员都有遇到过,产生该错误的原因大都出于以下原因:JVM内存过小、程序不严密,产生了过多的垃圾。导致OutOfMemoryError异常的常见原因有以下几种:内存中加载的数据量过于庞大,如一次从数据库取出过多数据;集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;代码中存在死循环或循环产生过多重复原创 2016-12-29 11:04:55 · 1238 阅读 · 0 评论 -
java常见的120道面试题第三季
问答题61 /120说出三种支持重绘(painting)的组件。参考答案Canvas, Frame, Panel,和Applet支持重绘。 问答题62 /120什么是裁剪(clipping)?参考答案限制在一个给定的区域或者形状的绘图操作就做裁剪。 问答题63 /120MenuItem和CheckboxMenuItem的区别是什么?参考答案Che原创 2017-01-03 22:16:45 · 738 阅读 · 0 评论 -
log4j.properties 详解与配置步骤
一、log4j.properties 的使用详解1.输出级别的种类ERROR、WARN、INFO、DEBUGERROR 为严重错误 主要是程序的错误WARN 为一般警告,比如session丢失INFO 为一般要显示的信息,比如登录登出DEBUG 为程序的调试信息2.配置日志信息输出目的地log4j.appender.appenderN转载 2016-12-08 21:45:42 · 335 阅读 · 0 评论