自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

原创 javap进行反编译

进入到Java文件目录下编译该文件:javac -encoding UTF-8 xxx.java这时候,该目录会有一个xxx.class编译后的字节码文件;再执行:javap -p xxx.class如果想看更加详细的反编译可执行:javap -c xxx (这里不要写文件后缀.class)反编译可以输出常量池的信息以及元素个数:javap -verbose xxx.class...

2020-07-28 20:28:05 291

原创 RocketMQ初识

官网地址:http://rocketmq.apache.org/docs/quick-start/快速启动下载源码包,解压并构建unzip rocketmq-all-4.4.0-source-release.zipcd rocketmq-all-4.4.0/mvn -Prelease-all -DskipTests clean install -Ucd distribution/t...

2019-11-03 19:42:33 231

原创 Dubbo命令

telnet连接dubbotelnet host port//连接本地dubbotelnet localhost 20880ls//显示服务列表ls//显示服务详细信息列表ls -l//显示服务的方法列表ls XxxService//显示服务的方法详细信息列表ls -l XxxServiceps//显示服务端口列表ps//显示服务地址列表ps -l//显示...

2019-10-11 21:48:33 276

原创 Linux常用命令(更新中)

查看端口占用命令sudo lsof -i :[port] //冒号后面就是需要查看的端口号sudo lsof -i :9000杀掉占用当前端口号的进程sudo kill -9 [PID] //PID为要杀死进程的PIDsudo kill -9 716...

2019-09-16 15:00:51 194

原创 Spring中使用@Autowired注解创建静态对象

在Spring里,我们不能@Autowired一个静态变量,使之成为一个spring bean。但静态方法里面的变量必然要使用静态成员变量。例如下面这样:public class TestUtils { @Autowired private static DocService docService; public static void CallUtil(){ ...

2019-09-16 14:24:44 1119

原创 dependencies标签和dependencyManagement标签区别

直观区别dependencies中的依赖都会被自动引用dependencyManagement只是声明依赖的版本号,并不会引用该依赖dependenciesdependencyManagement项目中依赖包版本号判断途径若 dependencies 里的 dependency 自己没有声明 version 元素,那么maven 就会 到 dependencyManagement...

2019-08-20 21:09:24 339

原创 Git初识

Git基础Git思想直接记录快照,而非差异比较近乎所有操作都是本地执行Git 保证完整性Git 一般只添加数据三种状态Git 有三种状态,你的文件可能处 于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。 已提交表示数据已经安全的 保存在本地数据库中。 已修改表示修改了文件,但还没保存到数据库中。 已暂存表示对一个已修改文件的当前 版本...

2019-08-19 18:23:30 124

原创 Dubbo初识

http://dubbo.apache.org/zh-cn/docs/user/quick-start.html概念一款轻量量级的rpc框架,⼜又具备了了服务治理理功能。提供三个主要功能:基于接⼝口的远程调⽤用;容灾和负载均衡;服务的注册与发现。模块领域模型在 Dubbo 的核心领域模型中:Protocol 是服务域,它是 Invoker 暴露和引用的主功能入口,它负责 ...

2019-08-19 18:22:13 161

原创 数据库

索引b-tree索引 Oracle数据库中最常见的索引类型是b-tree索引,也就是B-树索引,以其同名的计算科学结构命名。CREATE INDEX语句时,默认就是在创建b-tree索引。没有特别规定可用于任何情况。位图索引(bitmap index) 位图索引特定于该列只有几个枚举值的情况,比如性别字段,标示字段比如只有0和1的情况。基于函数的索引 比如经常对某个字段做查询的...

2018-09-09 15:58:12 133

转载 调度算法解析

批处理作业调度算法作业周转时间(Ti)=完成时间(Tei)-提交时间(Tsi)作业平均周转时间(T)=周转时间/作业个数作业带权周转时间(Wi)=周转时间/运行时间响应比=(等待时间+运行时间)/运行时间先来先服务调度算法(FCFS)就是按照各个作业进入系统的自然次序来调度作业。这种调度算法的优点是实现简单,公平。其缺点是没有考虑到系统中各种资源的综合使用情况,往往使短作业...

2018-09-05 15:44:12 1230

原创 Redis

RedisRedis 是一个基于内存的高性能key-value数据库,是速度非常快的非关系型(NoSQL)内存键值数据库速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)支持丰富数据类型,支持string,list,set,sorted set,hash支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全...

2018-09-04 22:14:10 168

原创 synchronized与lock

Java存在两种锁机制:synchronized和locksynchronized介绍synchronized 是Java的关键字,是Java的内置特性,在JVM层面实现了对临界资源的同步互斥访问,通过对对象的头文件来操作,从而达到加锁和释放锁的目的。当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码。通常,对于synchronize(lock){…}这...

2018-08-30 20:10:59 242

原创 mybatis三种批量插入方式

普通for循环插入public void testInsertBatch2() throws Exception { User user; SqlSession sqlSession = sqlSessionTemplate.getSqlSessionFactory().openSession(false); UserDao mapper = sqlSession.ge...

2018-08-30 12:57:05 7212 1

原创 HashMap源码解析

继承体系HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。 HashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。 HashMap 的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的。HashMap 的实例有两个...

2018-08-27 16:51:28 420

原创 JVM垃圾回收机制

如何判断对象是否存活GC动作发生之前,需要确定堆内存中哪些对象是存活的,一般有两种方法:引用计数法和可达性分析法。引用计数法在对象上添加一个引用计数器,每当有一个对象引用它时,计数器加1,当使用完该对象时,计数器减1,计数器值为0的对象表示不可能再被使用。引用计数法实现简单,判定高效,但不能解决对象之间相互引用的问题。可达性分析法通过一系列称为 “GC Roots” 的...

2018-07-23 15:10:46 157

转载 GET和POST的区别

Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的 查,改,增,删 4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。最基本...

2018-07-20 11:58:35 194

原创 工厂模式

工厂模式概念: 实例化对象,用工厂方法代替new操作 工厂模式包括工厂方法模式和抽象工厂模式 抽象工厂模式是工厂方法模式的扩展意图: 定义一个接口来创建对象,但是让子类来决定哪些类需要被实例化。 工厂方法把实例化的工作推迟到子类中去实现。适合工厂模式的情况: 1.有一组类似的对象需要创建。 2.在编码的时候不能预见需要创建哪种类的实例。 3.系统需要考虑扩展性,不应依赖...

2018-07-12 22:18:27 239

原创 Redis持久化

Redis是内存数据库,它把数据存储在内存中,这样在加快读取速度的同时也对数据安全性产生了新的问题,即当redis所在服务器发生宕机后,redis数据库里的所有数据将会全部丢失。 于是我们希望Redis能将数据从内存中以某种形式同步到硬盘中,使得重启后可以根据硬盘中的记录恢复数据,这一过程就是持久化。Redis提供两种方式进行持久化。 1. 快照方式(RDB) 对数据在某时某点的一种完...

2018-07-12 20:48:36 220

原创 快速失败和安全失败

快速失败(fail—fast)在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的结构进行了修改(增加、删除),则会抛出Concurrent Modification Exception。原理:迭代器在遍历时直接访问集合中的内容,并且在遍历过程中使用一个 modCount 变量。集合在被遍历期间如果结构发生变化,就会改变modCount的值。每当迭代器使用hashNext()/next...

2018-07-10 10:16:04 197

转载 B 树、B+ 树、B* 树、R 树

从B 树、B+ 树、B* 树谈到R 树 作者:July、weedge、Frankie。编程艺术室出品。说明:本文从B树开始谈起,然后论述B+树、B*树,最后谈到R 树。其中B树、B+树及B*树部分由weedge完成,R 树部分由Frankie完成,全文最终由July统稿修订完成。出处:http://blog.csdn.net/v_JULY_v 。 第一节、B树、B+树、B*树1.前言:动态查找树主...

2018-07-05 20:53:43 247

原创 ArrayList源码解析

继承体系 ArrayList主要是继承自AbstractList抽象类并实现了List接口、实现了Cloneable和Serializable接口使得ArrayList具有克隆和序列化的功能、实现了RandomAccess接口以实现随机访问的功能。public class ArrayList<E> extends AbstractList&am

2018-07-02 21:18:26 137

原创 Java对象,对象引用,参数传递

在Java中,万物皆对象!比如定义一个学生类public class Student { private int id; private String name; private int age; public Student() { // TODO Auto-generated constructor stub su...

2018-07-01 19:45:46 3647

原创 Cookie和Session的区别与联系

1、无状态的HTTP协议:   协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议 (HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。   HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。2、会话(Se...

2018-06-27 19:58:13 141

原创 volatile

一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义:1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。 2)禁止进行指令重排序。volatile只提供了保证访问该变量时,每次都是从内存中读取最新值,并不会使用寄存器缓存该值——每次都会从内存中读取。 而对该变量的修改,volat...

2018-06-25 09:15:53 400

原创 Java基础

接口,比抽象类还要抽象的类。 接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract (只能是 public abstract,其他修饰符都会报错)。 接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量(并且只能是 public,用 private 修饰会报编译错误),此时已经为常量了。 接口中的方法...

2018-06-25 09:11:53 106

原创 Java刷题

链接:https://www.nowcoder.com/questionTerminal/af8cf04602e045958d13d16d20a1bf02来源:牛客网Test.main() 函数执行后的输出是()public class Test { public static void main(String [] args){ System.out.pr...

2018-06-24 17:11:17 2795

原创 Mybaits初识

MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。快速入门 引入mybatis核心包,mysql驱动包,log4j用

2017-08-01 16:35:46 337

原创 过滤器和拦截器(SpringMVC实现)

拦截器是指通过统一拦截从浏览器发往服务器的请求来完成功能的增强。 使用场景:解决请求的共性问题,如:乱码问题、权限验证问题等过滤器实现乱码问题 Spring MVC默认提供了CharacterEncodingFilter过滤器类,来对客户端的请求进行编码设置。 在web.xml中配置该过滤器:<filter> <filter-name>characterEncodingFilter</

2017-07-08 18:52:18 1938

原创 SpringMVC初识

MVC的核心思想就是业务数据抽取同业务数据呈现相分离view:是视图层,为用户提供UI,重点关注数据的呈现。 model:模型层,是业务数据的信息表示,关注支撑业务的信息构成,通常是多个业务实体的组合。 controller:是控制层,通过调用业务逻辑产生合适的数据(model),同时将数据传递给视图层用于呈现。MVC是一种架构模式,是程序分成,分工合作,既相互独立,有协同工作。MVC是一种

2017-07-08 18:42:56 311

原创 代理模式

为其他对象提供一种代理以控制对这个对象的访问。 代理对象起到中介作用,可去掉功能服务或增加额外的服务。远程代理:为不同地理的对象提供局域网代表对象。eg.分店和总店的管理 虚拟代理:根据需要将资源消耗很大的对象进行延迟,真正需要的时候进行创建。eg.浏览网站时图片加载 保护代理:控制对一个对象的访问的权限。eg.网站各用户的权限 智能引用代理:提供对目标对象额外的服。eg.火车站和其代售点静

2017-07-01 20:28:52 216

原创 Spring事务管理

事务事务指的是逻辑上的一组操作,这组操作要么全部成功,要么全部失败。特性:原子性,一致性,隔离性,持久性 原子性指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 一致性指事务前后数据的完整性必须保持一致。 隔离性指多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间数据要相互隔离。 持久性指一个事务一旦被提交,它对数据库中数据的改变就是永

2017-06-24 17:11:14 337

原创 Spring中AOP初识

AOP 面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术 主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等实现方式 预编译:AspectJ 运行期动态代理(JDK动态代理,CGLib动态代理):SpringAOP,JbossAOPAOP的几个概念 切面(Aspect):一个关注点的模块化,这个关注点可能会横切多个对象; 连接点(Joinpoi

2017-06-24 17:09:21 344

原创 Spring中IoC初识

Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。IoC:控制反转,控制权的转移,应用程序本身不负责依赖对象的创建和维护,而是由外部容器负责创建和维护。反转即获得依赖对象

2017-06-24 16:51:32 376

原创 解决Maven不能下载“com.springsource.net.sf.cglib”jar

下载“com.springsource.net.sf.cglib-2.2.0.jar” 在maven默认的官方库(http://repo.maven.apache.org/maven2 )没有找到此jar,但是在http://repository.sonatype.org/content/groups/public/ 这个库中有这个jar,因此在eclipse中添加这个库即可,如下:<reposi

2017-06-24 16:34:24 8116 4

原创 Annotation-注解初步

注解:Java提供了一种原程序中的元素关联任何信息和任何元数据的途径和方法JDK自带注解 @Override 标识该方法是覆盖了父类中的方法 @Deprecated 标识该方法已过时 @Suppvisewarnings 忽略某种警告自定义注解:使用@interface关键字定义注解成员以无参无异常方式声明可以用default为成员指定一个默认值成员的类型是受限的,合法的类型包括原始

2017-05-09 16:00:13 227

原创 反射-动态增大数组空间

Arrays类中的copyOf()方法允许动态的创建数组,可增大数组空间int[] a=new int[100];a=Arrays.copyOf(a, 2*a.length);//增大数组空间copyOf()方法有两种类型,一种是int型数组,另一种是泛型数组,可适用任意变量类型的数组 下面是其源代码public static int[] copyOf(int[] original, int n

2017-05-05 19:20:51 480

原创 反射初步

在面向对象的世界里,万物皆对象。类是对象,类是java.lang.Class类的实例对象。另外class类只有java虚拟机才能new出来。任何一个类都是Class。 类的实例对象。这实例对象有三种表达方式:Class s1=Class.forName("com.lmr.invoke.Student");Class s2=Student.class;Student s=new Student();

2017-05-05 19:19:17 240

原创 pom.xml解释

modelVersion 制定当前pom的版本groupId 反写公司网址+项目名 artifactId 项目名+模块名 version 版本号 packaging 打包方式name 项目描述名 url 项目地址 description 项目描述dependencies 依赖列表 dependency groupId artifactId

2017-05-04 21:15:15 363

原创 Maven基本命令

mvn -v 查看maven版本 mvn compile 编译 mvn test 测试 mvn package 打包 mvn clean 清除target mvn install 安装jar包到本地仓库中mvn eclipse:eclipse 生成eclipse项目快速生成新项目框架 1:mvn archetype:generate 按照提示进行选择 2:mvn archetype

2017-05-04 21:05:29 373

原创 Collection和Array转换

数组转换为集合private static void initArrayToCollection() { // TODO Auto-generated method stub String[] a=new String[10]; for(int i=0;i<10;i++){ a[i]=String.valueOf((char)('A

2017-03-26 21:20:48 2587

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除