- 博客(42)
- 资源 (2)
- 收藏
- 关注
原创 JVM垃圾回收器学习笔记01
JVM垃圾回收器学习笔记01JVM GC概述哪些内存需要回收什么时候回收可达性分析算法如何回收参考JVM GC概述垃圾回收器,简称GC,也可以说是内存回收器,垃圾回收是JVM中最核心的功能之一。垃圾回收器主要关注三个问题:哪些内存需要回收(JVM运行时数据区内哪些区域需要进行内存回收)什么时候回收如何回收(用什么方法回收)Java开发者无须像C/C++开发者那样关注于内存相关的细节...
2020-05-05 17:29:27
165
原创 【Java】hashCode和equals
【Java】hashCode和equals一、hash表(散列表) hash表是一种数据结构,可以快速提供插入和查找操作。 hash表采用一个映射函数f:key->address将关键字映射到该记录在此表中的存储位置。通常情况下,这种映射关系称作为Hash函数,而通过Hash函数和关键字计算出来的存储位置(注意这里的存储位置只是表中的存储位置,并不是实际的物理地址)称作为Has...
2018-07-29 22:45:09
157
原创 Java异常-学习
Exception Exception是程序运行时,可以预料到的异常情况,可能并且应该被捕获进行相应的处理。 可分为可检查异常和不可检查异常,可检查异常必须显示的进行捕获处理;不可检查异常即所谓的运行时的异常,如NullPointerException,ArrayIndexOutOfBoundsException。Error Error是指在正常情况下不大可...
2018-05-27 16:59:23
199
原创 Centos安装java环境
卸载自带的OpenJDKroot用户使用下列命令查看 java -version会显示自带的OpenJDK相关信息。-卸载步骤 -查找相关的软件包 rpm -qa | grep java 得到一些信息如: java-1.4.2-gcj-compat-1.4.2.0-40jpp.115 java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5-删
2017-10-11 16:03:42
223
原创 过滤器(Filter)、监听器(Listener)学习
一、过滤器——Filter 概念:过滤器Filter是在Java Servlet规范2.3中定义的,它能够对Servlet容器的请求(request)和响应(response)对象进行检查和修改。 特点: 1.Servlet过滤器可以检查和修改ServletRequest和ServletResponse对象 2.Servlet过滤器可以被指定和特定的URL关联,只有当客户请求访问该
2017-02-21 16:02:50
567
原创 Servlet学习笔记
Servlet学习servlet的生命周期servletAPI学习Servlet学习 Servlet是基于java技术的web组件,被servlet容器(tomcat等)管理,用于根据不同请求而生成动态的内容。像其它基于java的组件技术一样,是与平台无关的组件技术,编译成与平台无关的字节码,被基于java技术的web服务器动态加载并运行。servlet的生命周期servlet的生命周期可
2017-02-20 18:45:33
336
原创 Weblogic相关
1、简介 Weblogic是基于javaEE构建的中间件,是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。2、重要概念域(domain):域是管理的单元或边界;作为一个单元来管理的,并相互关联的一组Weblogic 服务器资源被称为域。 (1)Domain是weblogic server管理的一个基本单元,包括一个管理 server和一个管理的入
2016-12-07 13:58:49
355
原创 Spring事物管理
概念 事物就是一系列的动作,它们被当做一个单独的工作单元,这些动作要么全部完成,要么全部不起作用。用来确保数据的完整性和一致性。事物的四个关键属性(ACID)原子性:一个事务要被完全的无二义性的做完或撤消。在任何操作出现一个错误的情况下,构成事务的所有操作的效果必须被撤消,数据应被回滚到以前的状态。一致性:一个事务应该保护所有定义在数据上的不变的属性(例如完整性约束)。在
2016-11-30 17:35:09
470
原创 Spring接口类InitializingBean
1、InitializingBean接口public interface InitializingBean { void afterPropertiesSet() throws Exception;}该接口只有一个方法afterPropertiesSet。2、接口作用InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPro
2016-11-29 19:14:57
381
原创 Spring-JdbcTemplate-春天的故事5
spring JdbcTemplate使用 1、引包 除了引入spring配置的相关包,还需引入数据配置相关的包。 <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version> </dep
2016-10-31 23:36:42
340
原创 Spring-AOP-春天的故事4
使用Spring4 AOP步骤1、导包<dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>4.0.2.RELEASE</version> </dependency> 2、配置Bean文件 配置AOP有两
2016-10-27 23:55:19
243
原创 Spring-AOP-春天的故事3
简介 AOP(Aspect-Oriented Programming):面向切面编程,AOP的主要编程对象是切面,而切面模块化横切关注点.AOP可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就
2016-10-26 23:54:59
287
原创 Java反射机制学习3
代理静态代理方法interface ClothFactory{ void productCloth();}class NikeClothFactory implements ClothFactory{ @Override public void productCloth() { System.out.println("Nike Factory product
2016-10-25 22:53:16
275
原创 Java的反射机制学习2
获取Class类实例的方法-调用运行时类本身的.class属性 Class clazz=Person.class;-通过运行时类的对象获取 Person person=new Person(); Class clazz=person.getClass();-通过Class的静态方法 Class clazz=Class.forName([类的全路径]);-通过类的加载器 C
2016-10-25 22:00:02
186
原创 Java的反射机制学习1
Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法. 下面以Person类为例子,对反射进行学习public class Person { private String name; private int age; public Person(){
2016-10-24 23:51:09
197
原创 Maven学习笔记二
POM Project Object Model:项目的属性、依赖、构建配置这些信息都被抽象到项目对象(POM)里面。 POM组成 -项目基本信息:groupId:artifactiId:packaging:version -构建环境 -POM关系 -构建设置插件与目标 使用命令:pluginId:goalId,例如mvn archetypr
2016-10-20 15:16:10
200
原创 spring-春天的故事2
Bean作用域 使用scope设置bean的作用域,常用的两种设置为prototype singleton:-singleton作用域:如果作用域设置为 singleton,那么 Spring IoC 容器刚好创建一个由该 bean 定义的对象的实例。该单一实例将存储在这种单例 bean 的高速缓存中,以及针对该 bean 的所有后续的请求和引用都返回缓存对象。 默认作用域是始终是 sin
2016-10-19 15:56:15
383
原创 maven配置阿里云镜像
提升maven下载速度 配置阿里云镜像,在maven的安装目录conf文件夹下settings.xml添加: <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexus aliyun</name> <url>http://maven
2016-10-19 11:14:06
345
原创 Spring-春天的故事1
概念【参考:SpringIOC的理解博客】 IOC(Inversion of Control):控制反转,是一种spring的核心思想。对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。所有的类都会在spring容器中登记,告诉spring你是个什么东西,你需要什么东西,然后spring会在系统运行到适当的时候,把你要的东西主动给你,同时也把你交给其他需要你的东
2016-10-18 23:47:07
443
转载 Maven:解决mvn archetype:generate很慢的问题
转载:http://blog.csdn.net/codercaicai/article/details/51917522 按照上述步骤完成后,使用mvn archetype:generate -DarchetypeCatalog=internal即可(maven版本:3.3.9)
2016-09-17 11:59:16
4795
原创 Maven学习笔记一
1、安装,windows环境下-(1)下载:maven官网下载,http://maven.apache.org/download.cgi -(2)安装:将下载的压缩包,解压缩在maven文件夹下 -(3)配置环境变量:选择“高级系统设置”-“高级”-“环境变量”,配置环境变量,并添加到系统变量。 -(4)测试配置:打开cmd,输入mvn -version,显示maven相关信息即为安装成功。2
2016-09-15 20:21:56
201
原创 Logback学习
简介 Logback建立在Logger、Appender、Layout三个主要类之上。这三种组件协同工作,使开发者可以按照消息类型和级别来记录消息,还可以在程序运行期内控制消息的输出格式和输出目的地。Logger类是logback-classic模块的一部分,而Appender和Layout接口来自logback-core。作为一个多用途模块,logback-core不包含任何logger。L
2016-09-03 22:27:30
751
原创 KMP算法java实现
详细过程理解代码实现:public class KMPDemo { //得到模式串的next[] public static int[] getNext(String pattern){ int j=0,k=-1; int[] next=new int[pattern.length()]; next[0]=-1; whil
2015-12-16 21:53:26
281
原创 多线程学习-线程通信
等待/通知机制 等待/通知机制在生活中比比皆是,举一个例子,厨师与服务员的例子,他们之间的交互在“菜品传递台”。 1、厨师做完一道菜的时间不确定,所以厨师将菜品放到“菜品传递台”上的时间也不确定。 2、服务员取到菜的时间取决于厨师,所以服务员就有“等待(wait)”的状态。 3、服务员如何能取到菜?取决于厨师,厨师将菜放在“菜品传递台”上,其实就相当于一种通知(notify),
2015-12-11 20:39:42
305
原创 多线程学习--ThreadLocal类的使用
引入 类ThreadLocal主要解决的就是每个线程绑定自己的值,可以将ThreadLocal类比喻成全局存放数据的盒子,盒子里可以存储每个线程的私有数据。使线程变量具有隔离性。案例 设置两个线程ThreadA和ThreadB,每个线程都分别为用ThreadLocal设置值和取值。public class Tools { public static ThreadLocal tl=
2015-12-11 16:24:41
388
原创 多线程学习-方法join的使用
引入 在很多情况下,主线程创建并启动子线程,如果子线程要进行大量的耗时计算,主线程往往将早于子线程结束之前结束。这时,如果主线程想等待子线程执行完成之后再结束,比如子线程处理一个数据,主线程要取得这个数据的值,就要用到join()方法了。方法join()的作用是等待线程对象销毁。使用的主要的类public class MyObject { private int value; pu
2015-12-11 15:26:52
297
原创 多线程学习-停止线程
引入 停止线程是在多线程开发时很重要的技术点,掌握此技术可以对线程的停止进行有效的处理。停止一个线程意味着在线程处理完任务之前停掉正在做的操作,也就是放弃当前操作。判断线程是否是停止状态 Thread类中提供了两种方法,interrupted()和isInterrupted(),下面做详细介绍。interrupted( )方法 方法声明:public static boolean in
2015-12-09 20:25:12
320
原创 最大连续子列和
问题描述 输入是具有n个浮点数的向量x(数组),输出是输入向量的任何连续子向量的最大和,例如输入为[31,-41,59,26,-53,58,97,-93,-23,84],那么输出为x[2..6]的总和,即187.求解方法简单直白法 直接求出所有满足0<=i<=j<=n的(i,j)整数对进行迭代,计算x[i…j]的总和,并检验该总和是否大于迄今为止的最大总和,时间复杂度O(n^3),称为立
2015-12-08 21:23:01
329
原创 找出一组数中个数超过一半的数
问题描述 问题:找出一组数中个数超过一半的数,时间复杂度O(n) 输入:一组数(其中必有一个数的个数是超过一半的)例: 1 1 2 4 1 3 1 2 1 输出:数字 例: 1代码public static int findMostApperse(int[] a){ int candidate=0; int count=0;
2015-12-08 20:49:25
407
原创 找出数组中的第K大的元素
问题描述 找出数组中的第K大的元素,时间复杂度为O(n)代码public class FindK { //随机取一个基准数pivot,然后遍历数组一次,比基准数大的逐一的放在最前面,最后返回基准数的位置 //并且次基准数在a[left...right]中是第(k-left+1)大的元素 public static int randomPartition(int[] a,
2015-12-08 20:37:43
590
原创 Java多线程简单介绍-1
1、介绍多线程比多任务更加有挑战。多线程是在同一个程序内部并行执行,因此会对相同的内存空间进行并发读写操作。这可能是在单线程程序中从来不会遇到的问题。其中的一些错误也未必会在单CPU机器上出现,因为两个线程从来不会得到真正的并行执行。然而,更现代的计算机伴随着多核CPU的出现,也就意味着不同的线程能被不同的CPU核得到真正意义的并行执行。2、多线程的优点资源利用
2015-12-07 16:28:11
262
原创 希尔排序
1、希尔排序(shell sort)希尔排序是由D.L.Shell在1959年提出的,又称缩小增量排序,基本思想是分组的直接插入排序。2、算法描述(1)讲一个数据序列分成若干组,每组由若干相隔一段距离的元素组成,这段距离成为增量,在一个组内采用直接c插入排序算法进行排序;(2)增量的初值通常为数据序列长度的一半,以后每趟增量逐步缩小,最后值为1。3、代码实现
2015-12-02 20:14:35
280
原创 Huffman树与Huffman编码
Huffman编码 huffman编码是数据压缩技术中的一种无损压缩方法,是一种变长的编码方案(ASCII码是最常用的一种定长的编码方案),字符的编码根据使用频率的不同而长短不一,使用频率高的字符其编码较短,使用频率低的字符其编码较长,从而使所有字符的编码总长度为最短。Huffman树二叉树的路径长度 1.二叉树的路径长度 在二叉树中,从X到Y结点多经过的结点序列称为从X到Y结点的一条
2015-12-02 16:10:32
467
原创 队列应用-素数环问题
问题描述: 将从1到n这n个整数围成一个圆环,若其中任意2个相邻的数字相加,结果均为素数,那么这个环就成为素数环。求解思路: 先将1放入素数环,设置一个队列,将2-n的自然数全部入队,每次对出对的一个元素k进行测试,若符合要求,则将k加入到素数环中,否则将k再次入队等待,重复次不步骤直至队列为空。import java.util.ArrayDeque;import java.util.Arr
2015-12-02 11:07:07
1384
原创 栈的学习-四则运算实例
栈的学习-四则运算实例目录栈的学习-四则运算实例目录栈和队列java中使用栈1Stack类2Deque接口栈的应用-四则运算栈和队列 栈和队列是两种特殊的线性表,特殊之处在于插入与删除操作的位置受到限制,若插入和删除只能在线性表的一端进行,则为栈,特点是后进先出(LIFO);若插入和删除操作分别在线性表的两端进行,则为队列,特点是先进先出(FIFO)。 栈按不同的存储结构又分为
2015-12-01 20:51:08
492
原创 找出数组中第K大的数
问题:找出数组中第K大的数(类似:找出一个数组中个数超过一半的数,就是找第n/2(n为数组长度)大的数)解法思路:设数组A[0,1.....n-1] 1、随机选择数组中的一个数,将该数与A[n-1]交换2、遍历数组,遇到比A[n-1]小的就依次放在数组的最前面(遍历到第一个比A[n-1]小的放在A[0],第二个比A[n-1]小的放在A[1]....)3、遍历完(一遍)
2015-09-30 20:09:33
1892
原创 java学习-二分查找
import java.util.Random;import java.util.Scanner;public class BinaryFind { //生成随机数 然后排序 再二分查找 用作理解二分查找 public static void main(String[] args) { Random r=new Random(); System.o
2015-04-14 22:16:12
422
原创 统计大串中小串出现的次数
统计大串中小串出现的次数public class Test3 { public static void main(String[] args) { String str="woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun"; String searchStr="java"; Sy
2015-04-10 20:08:51
1451
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人