![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java学习总结记录
文章平均质量分 62
时光荏苒心依旧
记录自己学习的心得,每天进步一点点
展开
-
【HashMap】深入原理解析
【HashMap】深入原理解析分类: 数据结构 自考equals与“==”(可以参考自己的另一篇博文) 1,基本数据类型(byte,short,char,int,long,float,double,boolean)使用“==” 对比的是具体的值是否相等2,复合数据类型“== ”对比的是内存中存放的地址object中的equals初始行转载 2017-07-07 20:33:56 · 320 阅读 · 0 评论 -
垃圾收集器与内存分配策略
垃圾收集(Garbage Collection,GC)GC需要完成的3件事情:哪些内存需要回收?什么时候回收?如何回收?为什么我们需要了解GC和内存分配?当需要排查各种内存溢出、内存泄露问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对这些”自动化“的技术实施必要的监控和调节。哪些内存需要回收呢?java运行时数据区:程序计数原创 2017-06-30 16:51:30 · 205 阅读 · 0 评论 -
HibernateTemplate和HibernateDaoSupport
Spring整合Hibernate后,两个工具类:HibernateTemplate和HibernateDaoSupport。HibernamteTemplateHibernateTemplate是Spring提供的一个就Hibernate访问持久层技术而言、支持Dao组件的一个工具。HibernateTemplate提供持久层访问模板,应用HibernateTemplate无须实现特定的转载 2017-06-09 16:01:13 · 264 阅读 · 0 评论 -
Spring之AOP由浅入深
1.AOP的作用 在OOP中,正是这种分散在各处且与对象核心功能无关的代码(横切代码)的存在,使得模块复用难度增加。AOP则将封装好的对象剖开,找出其中对多个对象产生影响的公共行为,并将其封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),切面将那些与业务无关,却被业务模块共同调用的逻辑提取并封装起来,减少了系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。转载 2017-06-08 10:57:13 · 237 阅读 · 0 评论 -
Spring事务配置的五种方式
Spring事务配置的五种方式 前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的。 总结如下: Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理转载 2017-06-07 19:51:13 · 278 阅读 · 0 评论 -
Spring AOP中pointcut expression表达式解析
Pointcut 是指那些方法需要被执行"AOP",是由"Pointcut Expression"来描述的.Pointcut可以有下列方式来定义或者通过&& || 和!的方式进行组合. args()@args()execution()this()target()@target()within()@within()@annotation其中executio转载 2017-06-07 15:36:42 · 475 阅读 · 0 评论 -
Spring AOP详解
Spring AOP详解一.前言 在以前的项目中,很少去关注spring aop的具体实现与理论,只是简单了解了一下什么是aop具体怎么用,看到了一篇博文写得还不错,就转载来学习一下,博文地址:http://www.cnblogs.com/xrq730/p/4919025.htmlAOPAOP(Aspect Oriented Programming),即面向切面编转载 2017-06-06 15:43:25 · 631 阅读 · 0 评论 -
理解java回调机制
转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17483273),请尊重他人的辛勤劳动成果,谢谢以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过转载 2017-06-06 11:01:22 · 284 阅读 · 0 评论 -
java中的正则表达式
java中正则表达式常用的构造元素: 字符 x 字符 x。举例:'a'表示字符a \\ 反斜线字符。 \n 新行(换行)符 ('\u000A') \r 回车符 ('\u000D') 字符类 [abc] a、b 或 c(简单类) [^abc] 任何字符,除了 a、b 或 c(否定) [a-zA-Z] a到 z转载 2017-05-18 15:14:57 · 339 阅读 · 0 评论 -
Java反射机制详解
java 反射 定义 功能 示例概要:Java反射机制详解| |目录1反射机制是什么2反射机制能做什么3反射机制的相关API·通过一个对象获得完整的包名和类名·实例化Class类对象·获取一个对象的父类与实现的接口·获取某个类中的全部构造函数 - 详见下例·通过反射机制实例化一个类的对象·获取某个类的全部属性·获取某个类的全部方法·通过反射机制调用某个类的方法·通过反射转载 2017-05-26 15:21:11 · 250 阅读 · 0 评论 -
全面理解Java内存模型
Java内存模型即Java Memory Model,简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。Java内存模型定义了多线程之间共享变量的可见性以及如何在需要的时候对共享变量进行同步。原始的Java内存模型效率并不是很理想,因此转载 2017-07-02 21:00:25 · 248 阅读 · 0 评论 -
Java IO:BIO和NIO区别及各自应用场景
jiq408694711博客专家 Java IO:BIO和NIO区别及各自应用场景发表于2016/4/20 22:57:29 7630人阅读分类: Java 分布式服务架构 转载请注明出处:jiq•钦's technical Blog - 季义钦引言BIO和NIO是两种不同的网络通信模型,现如今NIO已经大量应用在Jetty、ZooKeeper、转载 2017-06-23 15:26:18 · 695 阅读 · 0 评论 -
Spring Bean Scope 有状态的Bean 无状态的Bean
有状态会话bean :每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,即“有状态”;一旦用户灭亡(调用结束或实例结束),bean的生命期也告结束。即每个用户最初都会得到一个初始的bean。 无状态会话bean :bean一旦实例化就被加进会话池中,各个用户都可以共用。即使用户已经消亡,bean 的生命期也不一定结束,它可能依然存在于转载 2017-07-07 20:26:35 · 409 阅读 · 0 评论 -
Spring并发访问的线程安全性问题
下面的记录对spring中并发的总结。理论分析参考Spring中Singleton模式的线程安全,建议先看spring中的并发访问题:我们知道在一般情况下,只有无状态的Bean才可以在多线程环境下共享,在Spring中,绝大部分Bean都可以声明为singleton作用域。那么对于有状态的bean呢?Spring对一些(如RequestContextHolder、Transacti转载 2017-07-07 20:18:10 · 449 阅读 · 0 评论 -
Spring 并发访问的线程安全性问题
首先对于Spring的IOC来说,对象是由Spring来帮我们管理,也就是在Spring启动的时候,在Spring容器中,由Spring给我们创建的,Spring会帮我们维护,一般都是单例的,也就是一个对象。spring生成对象默认是单例的。通过scope属性可以更改为多例。第一部分:验证Spring生成对象默认是单例的。下面我们来一个网上的例子验证一下:转载 2017-07-07 17:45:27 · 607 阅读 · 0 评论 -
高并发下线程安全的单例模式
在所有的设计模式中,单例模式是我们在项目开发中最为常见的设计模式之一,而单例模式有很多种实现方式,你是否都了解呢?高并发下如何保证单例模式的线程安全性呢?如何保证序列化后的单例对象在反序列化后任然是单例的呢?这些问题在看了本文之后都会一一的告诉你答案,赶快来阅读吧!什么是单例模式?在文章开始之前我们还是有必要介绍一下什么是单例模式。单例模式是为确保一个类只有一个实例,并为整个系统提供一个全转载 2017-07-07 17:09:01 · 258 阅读 · 0 评论 -
生产者/消费者问题的多种Java实现方式
生产者/消费者问题的多种Java实现方式 实质上,很多后台服务程序并发控制的基本原理都可以归纳为生产者/消费者模式,而这是恰恰是在本科操作系统课堂上老师反复讲解,而我们却视而不见不以为然的。在博文《一种面向作业流(工作流)的轻量级可复用的异步流水开发框架的设计与实现》中将介绍一种生产者/消费者模式的具体应用。生产者消费者问题是研究多线程程序时绕不开的经典问题之一,它描述是有一块缓冲区作转载 2017-07-07 15:31:12 · 192 阅读 · 0 评论 -
前缀、中缀、后缀表达式
关键字:概念, 前缀表达式, 前缀记法, 中缀表达式, 中缀记法, 波兰式, 后缀表达式, 后缀记法, 逆波兰式它们都是对表达式的记法,因此也被称为前缀记法、中缀记法和后缀记法。它们之间的区别在于运算符相对与操作数的位置不同:前缀表达式的运算符位于与其相关的操作数之前;中缀和后缀同理。举例:(3 + 4) × 5 - 6 就是中缀表达式- × + 3 4 5 6 前缀表转载 2017-07-05 10:15:00 · 220 阅读 · 0 评论 -
classpath、path、JAVA_HOME的作用及JAVA环境变量配置
CLASSPATH是什么?它的作用是什么?它是javac编译器的一个环境变量。它的作用与import、package关键字有关。当你写下improt java.util.*时,编译器面对import关键字时,就知道你要引入java.util这个package中的类;但是编译器如何知道你把这个package放在哪里了呢?所以你首先得告诉编译器这个package的所在位置;如何告诉它呢?就是设置C转载 2017-07-05 09:46:32 · 355 阅读 · 0 评论 -
JVM内存堆布局图解分析
转载原文出处:http://www.codeceo.com/article/jvm-memory-stack.html JAVA能够实现跨平台的一个根本原因,是定义了class文件的格式标准,凡是实现该标准的JVM都能够加载并解释该class文件,据此也可以知道,为啥Java语言的执行速度比C/C++语言执行的速度要慢了,当然原因肯定不止这一个,如在JVM中没有数据寄存器,指令集使用的是栈转载 2017-07-04 09:16:43 · 392 阅读 · 0 评论 -
Java序列化与反序列化
Java序列化与反序列化是什么?为什么需要序列化与反序列化?如何实现Java序列化与反序列化?本文围绕这些问题进行了探讨。 1.Java序列化与反序列化 Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。 2.为什么需要序列化与反序列化 我们知道,当两个进程进行远程通信时,可以相互发送各种类型的数据,包括文本、图片、音频转载 2017-06-12 19:56:24 · 171 阅读 · 0 评论 -
Java中Volatile关键字详解
阅读目录一、基本概念二、Volatile原理一、基本概念先补充一下概念:Java 内存模型中的可见性、原子性和有序性。可见性: 可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉。通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情。为了确保多个线程之间对内存写入操作的可见性,必须使用同步机制。 可见转载 2017-05-25 20:16:44 · 155 阅读 · 0 评论 -
Java中hashCode的作用
以下是关于HashCode的官方文档定义:[plain] view plain copyprint?hashcode方法返回该对象的哈希码值。支持该方法是为哈希表提供一些优点,例如,java.util.Hashtable 提供的哈希表。 hashCode 的常规协定是: 在 Java 应用程序执行期间,在同一对象上多次调用 hashCod转载 2017-05-15 10:04:28 · 239 阅读 · 0 评论 -
Java学习记录(9)——多态
Java引用变量有两种类型:一个是编译时类型,一个是运行时类型。编译时类型由声明该变量式使用的类型决定,运行时类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,就可以能出现所谓的多态(polymorphism).class BaseClass{public int book=6;public void base(){System.out.println("父类的普通原创 2016-10-31 17:19:00 · 238 阅读 · 0 评论 -
Java学习记录(8)——继承
Java的继承具有单继承的特点,每个子类只有一个直接父类。Java的继承通过extends关键字来实现。语法格式如下:修饰符 class SubClass extends SuperClass{//类定义部分}子类是父类的扩展,子类是一种特殊的父类。子类扩展了父类,将可以获得父类的全部成员变量和方法,但是,Java的子类不能获得父类的构造器。如果定义一个Java类时原创 2016-10-31 11:15:47 · 337 阅读 · 0 评论 -
Java学习记录(5)——深入数组
数组是一种引用数据类型,数组引用变量只是一个引用,数组元素和数组变量在内存里是分开存放的。数组引用变量只是一个引用,这个引用变量可以指向任何有效的内存,只有当引用指向有效内存是,才可以通过数组变量来访问数组元素。引用变量是访问真实对象的根本方式。实际的数组对象被存储在堆(heap)内存中;如果引用该数组对象的数组引用变量是一个局部变量,那么它被存储在栈(stack)内存中。原创 2016-10-20 19:19:47 · 322 阅读 · 0 评论 -
Java学习记录(4)——基本类型的类型转换
Java中的基本数据类型Java中基本数据类型之间的转换有两种:自动类型转换、强制类型转换自动类型转换,Java中所有数值型变量可以相互转换,把任何基本类型的值和字符串值进行连接运算时,基本类型的值将自动类型转换成字符串类型,虽然字符串类型不是基本类型,而是引用类型。强制类型转换的语法格式是:(targetType)value通常情况下,字符串不能直接转换成基本类型原创 2016-10-20 16:26:36 · 400 阅读 · 0 评论 -
Java学习记录(11)
Java程序入口,main函数public static void main(String[] args){}public修饰符:Java类由JVM调用,为了让JVM可以自由调用这个main()方法,所以使用public修饰符把这个方法暴露出来static修饰符:JVM调用这个主方法是,不会先创建该主类的对象,然后通过对象来调用该主方法。JVM直接通过该类来调用主方法,因此使用st原创 2016-11-06 15:03:06 · 187 阅读 · 0 评论 -
Java学习记录(7)——封装
封装是面向对象的三大特征之一,它指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类提供的方法来实现对内部信息的操作和访问。对一个类或对象实现良好的封装,可以实现以下目的:隐藏类的实现细节;让使用者只能通过事先预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限定对成员变量的不合理访问;便于修改,提高代码的可维护性。实现良好的封装,需要从两方面考虑:将原创 2016-10-25 20:59:38 · 304 阅读 · 0 评论 -
Java学习记录(6)——变量
在Java语言中,根据定义变量位置的不同,可以将变量分成两大类:成员变量和局部变量。成员变量指的是在类里定义的变量;局部变量指的是在方法里定义的变量。类变量的作用域比实例变量的作用域更大:实例变量随实例的存在而存在,而类变量则随类的存在而存在。访问方法:类.类变量;实例.实例变量;实例.类变量局部便令根据定义形式的不同,可以分为如下三种:局部变量除了形参之外,都原创 2016-10-24 19:15:14 · 251 阅读 · 0 评论 -
Java学习记录(10)——包装类
Java提供了8种基本数据类型,这8种基本数据类型不支持面向对象的编程机制,基本数据类型的数据也不具有“对象”的特性:没有成员变量、方法可以被调用。所有引用类型的变量都继承了Object类,都可以当成Object类型变量使用。为了解决8种基本数据类型的变量不能当成Object类型变量使用的问题,Java提供了包装类的概念,为8种基本数据类型分别定义了相应的引用类型,称之为基本数据类型的包装原创 2016-11-03 10:53:24 · 312 阅读 · 0 评论 -
Java学习总结记录(2)——JVM、JRE和JDK
JVM:JVM(Java Virtual Machine)Java虚拟机,是可运行Java字节码文件的虚拟计算机,是Java实现跨平台的最核心的部分。所有的Java程序会首先被编译成.class文件,然后在Java虚拟机上运行。所有平台生的JVM向编译器提供相同的编程接口,而编译器只需要面向虚拟机,生成虚拟机能理解的代码,然后由虚拟机来解释执行。当使用Java编译器编译Java程序原创 2016-09-04 20:30:40 · 306 阅读 · 0 评论 -
java学习记录(12)——集合
Java集合框架的三个主要体系:Set、List、MapSet代表无序、不可重复的集合;List代表有序、可重复的集合;Map代表具有映射关系的集合。集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。所有集合类都位于java.util包下。集合类只能保存对象,不能保存基本类型的值。集合类主要有两个接口派生而出:Collection和Map。Set集合类原创 2016-11-13 13:41:06 · 237 阅读 · 0 评论 -
Java学习记录(13)——JDBC
JDBC的全称是Java database connectivity,即Java数据库连接,它是一种可以执行SQL语句的Java API。JDBC的典型用法1、加载数据库驱动。通常使用Class类的forName()静态方法来加载驱动。//加载mysql的驱动Class.forName("com.mysql.jdbc.Driver");//加载oracle的驱动Cl原创 2016-11-17 20:59:21 · 267 阅读 · 0 评论 -
String、StringBuffer与StringBuilder之间区别
最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下。关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下 1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String转载 2017-03-29 19:13:31 · 199 阅读 · 0 评论 -
快速排序
http://blog.csdn.net/morewindows/article/details/6684558 快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影转载 2017-01-12 17:00:41 · 260 阅读 · 0 评论 -
java学习知识点
原创 2017-01-01 18:03:57 · 309 阅读 · 0 评论 -
算法总结
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 自10月初编写算法系列的博客以来,陆陆续续以来写了几十篇。按照计划,还有三个部分的内容没有介绍,主要是(Dijkstra算法、二叉平衡树、红黑树)。这部分会在后面的博客补充完整。这里主要是做一个总结,有兴趣的朋友可以好好看看,欢迎大家提出宝贵意见。 (1)转载 2017-01-10 19:17:27 · 203 阅读 · 0 评论 -
JAVA设计模式之单例模式
本文继续介绍23种设计模式系列之单例模式。概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。 单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向整转载 2017-01-09 20:57:13 · 170 阅读 · 0 评论 -
正则表达式(转载)
(PS:这篇文章为转载,我不喜欢转载的但我觉得这篇文章实在是超赞了,就转了过来,这篇可以说是学习JAVA正则表达的必读篇。作者是个正真有功力的人,阅读愉快) 在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包。 可粗略估计一下,除了偶尔用Linux的外,其他Linu x用户都会遇到正则表达式。正则转载 2017-01-09 19:07:46 · 417 阅读 · 0 评论