自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 dubbo远程服务调用和maven依赖的区别

dubbo:跨系统通信。比如:两个系统,一个系统A作客户端,一个系统B作服务器, 服务器B把自己的接口定义提供给客户端A,客户端A将接口定义在spring中的bean。客户端A可直接使用这个bean,就好像这些接口的实现(即服务器B的代码)也是在自己的代码里一样。客户端A和服务器B在启动的时候都会把自己的机器IP注册到zookeeper上,客户端A会把zk上的服务端ip拉到磁盘上,并记录...

2019-09-26 15:40:00 570

转载 mybatis分页插件使用

一:导入依赖 <!--分页插件--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> ...

2019-09-16 22:41:00 193

转载 HTTP工作原理

1.图解2.文字描述转载于:https://www.cnblogs.com/xhlwjy/p/11504215.html

2019-09-11 08:35:00 221

转载 Java中深度克隆和浅度克隆

一:使用目的:就是为了快速构造一个和已有对象相同的副本。如果需要克隆对象,一般需要先创建一个对象,然后将原对象中的数据导入到新创建的对象中去,而不用根据已有对象进行手动赋值操作。二:Object中的clone()方法 protected native Object clone() throws CloneNotSupportedException;  说明:1...

2019-09-06 11:43:00 175

转载 为什么重写equals还要重写hashcode

参考回答:HashMap中,如果要比较key是否相等,要同时使用这两个函数!因为自定义的类的hashcode()方法继承于Object类,其hashcode码为默认的内存地址,这样即便有相同含义的两个对象,比较也是不相等的。HashMap中的比较key是这样的,先求出key的hashcode(),比较其值是否相等,若相等再比较equals(),若相等则认为他们是相等的。若equals...

2019-08-27 20:30:00 102

转载 对于转换流的理解

一:概述转换流:字符流转字节流,字节流转字符流使用场景:解决乱码问题 public static void main(String[] args) throws IOException {     //源文件为gbk编码 /*FileReader fr=new FileReader("a.txt"); OutputStreamWr...

2019-08-24 16:38:00 231

转载 JAVA中一个汉字占多少个字符(转载)

1、先说重点:不同的编码格式占字节数是不同的,UTF-8编码下一个中文所占字节也是不确定的,可能是2个、3个、4个字节;2、以下是源码: 1 @Test 2 public void test1() throws UnsupportedEncodingException { 3 String a = "名"; 4 ...

2019-08-23 10:40:00 4989

转载 NIO浅析(二)

一:前言  在(一中了解了NIO中的缓冲区和通道),通过本文章你会了解阻塞和非阻塞,选择器,管道二:完成NIO通信的三要素* 1.通道(Channel):负责连接* java.nio.channels.Channel 接口:* SelectableChannel* //TCP* SocketCh...

2019-08-19 10:32:00 123

转载 NIO浅析(一)

一:NIO与IO的区别  1.NIO面对的是缓冲区,IO面对的是流  2.NIO是非阻塞的,IO是阻塞的  3.NIO中引入了选择器二:既然NIO面对的是缓冲区,那就先来了解缓冲区  1.NIO中Buffer负责存储,Buffer底层采用的是数组,可以存储不同数据类型,提供了相应的缓冲区(ByteBuffer,IntBuffer......),对于缓冲区的管理一...

2019-08-18 20:30:00 136

转载 深入理解finally关键字,Finally到底是在return前面执行还是在return后面执行

一:2种finally不会执行的情况  a.在try语句之前就return了  b.try语句中有System.exit();语句二:finally语句在return执行之后,return返回之前执行  例1:public class FinallyTest1 { public static void main(String[] args) { ...

2019-08-16 11:23:00 1039

转载 对于Final关键字的总结

1、final关键字可以用于成员变量、本地变量、方法以及类。2、final成员变量必须在声明的时候初始化或者在构造器中初始化,否则就会报编译错误。3、你不能够对final变量再次赋值。4、本地变量必须在声明时赋值。5、在匿名类中所有变量都必须是final变量。6、final方法不能被重写。7、final类不能被继承。8、没有在声明时初始化fina...

2019-08-14 10:26:00 129

转载 JVM内存图

转载于:https://www.cnblogs.com/xhlwjy/p/11344631.html

2019-08-13 11:07:00 102

转载 next()和nextLine()的区别

nextLine()不要和其他next方法一起用!!!尤其nextLine()不要放在它们后面!!!首先是大家共所周知的区别nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。next()会自动消去有效字符前的空格,只返回输入的字符,不能得到带空格的字符串。接下来是重头戏next()在输入有效字符之后,将其后输入的空格键、Tab键...

2019-08-12 14:59:00 160

转载 内部类

一:分类成员内部类:普通成员内部类,私有成员内部类,静态成员内部类局部内部类匿名内部类二:普通成员内部类可以被哪些修饰:private(私有成员内部类),default,protected,public普通成员内部类a.可以访问外部类的所有成员,包括私有的b.外部类访问内部类成员需要先创建内部类对象c.不能有静态资源public class I...

2019-08-09 15:40:00 100

转载 抽象工厂设计模式

何时使用:系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。如何解决:在一个产品族里面,定义多个产品。优点:当一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只使用同一个产品族中的对象。缺点:产品族扩展非常困难,要增加一个系列的某一产品,既要在抽象的 Creator 里加代码,又要在具体的里面加代码。附上图,便于理解,图来自菜鸟教程形状接口...

2019-08-08 20:10:00 104

转载 简单工厂

何时使用:我们明确地计划不同条件下创建不同实例时。如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。优点:1、一个调用者想创建一个对象,只要知道其名称就可以了。 2、扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。 3、屏蔽产品的具体实现,调用者只关心产品的接口。缺点:每次增加一个产品时,都需要增加一个具体类和对象实现工厂,使得系统中类的个数成倍增加,在一定...

2019-08-08 19:40:00 122

转载 Java鲁棒性(健壮性)

鲁棒性(Robust,即健壮性)Java在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。它提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生 的错误。通过集成的面向对象的例外处理机制,在编译时,Java揭示出可能出现但未被处理的例外,帮助程序员正确地进行选择以防止系统的崩溃。另外, Java在编译时还可捕获类型声明中的许多常见错误,防止动态运行时不匹配问题...

2019-08-07 16:27:00 854

转载 外部类,成员内部类,局部内部类能被哪些修饰符修饰

1.类指外部类,最大的类,修饰符有public(表示该类在项目所有类中可以被导入),default(该类只能在同一个package中使用),abstract,final2.内部类指位于类内部但不包括位于块、构造器、方法内,且有名称的类,修饰符有public,private,protected访问控制符,也可以用static,final关键字修饰,public和private比较简单,...

2019-08-07 16:25:00 5103

转载 Java枚举类的7种常用的方法

一:存放常量public enum EnumTest { RED, GREEN, BLANK, YELLOW}二:switchJDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。public class Test2 { public static void main(String...

2019-08-07 11:39:00 489

转载 同步,异步,阻塞,非阻塞

同步:所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。例如普通B/S模式(同步):提交请求->等待服务器处理->处理完毕返回这个期间客户端浏览器不能干任何事异步:异步的概念和同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通...

2019-08-06 08:53:00 179

转载 对于面向对象的基本理解

封装、继承、多态、抽象在JAVA中,面向对象的思想体现在封装、继承和多态三个方面封装:我们将对象的属性和行为写在一个类中,让其成为一个独立的整体,并尽可能地对外隐藏对象的内部实现细节,这个操作成为封装。封装是面向对象的基础继承:从已有的类派生出新的子类,子类根据权限拥有父类的数据、属性和行为,并能根据自己的需求扩展新的行为,这个过程称为继承多态:指允许不同的对象对...

2019-08-05 15:27:00 121

转载 对于数组的一点理解

一:声明一个数组:int [] arr = new int[10];二:利用java的反射来获取一些java类的信息package com.cn.am;import java.lang.annotation.Annotation;import java.lang.reflect.Constructor;import java.lang.refl...

2019-08-05 11:17:00 135

转载 类加载机制-双亲委派机制(三)

1.JDK内置除了根类加载器其他的类只有1个父加载器通俗的说双亲委派机制:某一个类加载器想要加载特定的类,并不是由自己立刻去加载,而是把他委托给父加载器完成,如果父加载器上面还有父加载器,再委托给父亲的父亲,一直往上不断的追溯,直到根类加载器,由根类加载器特定的类,如果根类加载器无法加载,就把流程往下返回给拓展加载器,一直往下。在这个过程中只要有...

2019-08-02 19:59:00 155

转载 类加载机制(二)

一:接口加载机制先看看这个例子public class Test1 { public static void main(String[] args) { System.out.println(MyChild15.b); }}interface MyInterface5{ public static int a=5;}...

2019-08-01 20:06:00 125

转载 synchronized与ReenTranLock的区别

1.synchronized 回顾表示原子性和可见性原子性:一次只有一个线程能执行lock保护的代码可见性:线程更新了变量后会将其更新到主内存里面  volatile可以实现可见性,不能实现原子性2.对 synchronized 的改进  在最近的 JVM 中,没有争用的同步(一个线程拥有锁的时候,没有其他线程企图获得锁)的性能成本还是很...

2019-08-01 14:16:00 1276

转载 ThreadLocal浅析

1.ThreadLocal的大体理解  ThreadLocal 又名 线程局部变量,是 Java 中一种较为特殊的线程绑定机制,可以为每一个使用该变量的线程都提供一个变量值的副本,并且每一个线程都可以独立地改变自己的副本,而不会与其它线程的副本发生冲突。通过 ThreadLocal 存取的数据,总是与当前线程相关,也就是说,JVM 为每个运行的线程绑定了私有的本地实例存取空间,从而...

2019-08-01 11:09:00 116

转载 JVM简介及类加载机制(一)

JVM介绍:目标:JVM运行字节码文件,根据JVM的日志调节程序,对于底层原理有一定的了解1.类加载在JAVA代码中,类型的加载,连接与初始化都是在程序运行期间完成的,提供了灵活性增加了更多的可能性2.类加载器(加载类的工具)虚拟机结束生命周期的情况A)执行System.exit(),finally中的代码都不能执行B)程序正常结束C)程序...

2019-07-31 20:27:00 106

转载 String基础

1.String 不可变publicclassTest1 {publicstaticString upcase(String s){returns.toUpperCase();}publicstaticvoidmain(String[] args) {String s="hobby";System.out.println(s);Str...

2019-07-31 15:18:00 92

转载 简单介绍Collection框架的结构

Collection:List列表,Set集Map:Hashtable,HashMap,TreeMapCollection是单列集合List元素是有序的、可重复有序的collection,可以对列表中每个元素的插入位置进行精确地控制。可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。可存放重复元素,元素存取是有序的。Li...

2019-07-30 11:45:00 609

转载 String,StringBuffer,StringBuilder的区别

一、Java String 类——String字符串常量字符串广泛应用在Java 编程中,在 Java 中字符串属于对象,Java 提供了String 类来创建和操作字符串。需要注意的是,String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,这样不仅效率低下,而且大量浪费有限的内存空间。我们来看一下这张对String操作时内存变化的图:...

2019-07-30 11:08:00 186

转载 JAVA常量池

java常量池是一个经久不衰的话题,也是面试官的最爱,题目花样百出。理论jvm虚拟内存分布:** 程序计数器是jvm执行程序的流水线,存放一些跳转指令,这个太高深,小菜不懂。** 本地方法栈是jvm调用操作系统方法所使用的栈。** 虚拟机栈是jvm执行java代码所使用的栈。*...

2019-07-30 09:56:00 92

转载 剑指offer第二版面试题11:旋转数组的最小数字(JAVA版)

题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。解题思路: 1、暴力解法,从头到尾遍历一次,我们就能找出最小的元素,复杂度为O(n),但是没有利用输入的旋转数组的特性,肯定达不到面试官的要求。 2、二分查找,这里的数组...

2019-07-28 16:48:00 113

转载 剑指offer第二版面试题10:斐波那契数列(JAVA版)

题目:写一个函数,输入n,求斐波那契数列的第n项。斐波那契数列的定义如下:1、效率很低效的解法,挑剔的面试官不会喜欢使用递归实现:public class Fibonacci { public long getNum(int n){ if(n<=0){ return 0; }else if(...

2019-07-28 16:13:00 198

转载 剑指offer第二版面试题9:用两个队列实现栈(JAVA版)

题目:用两个队列实现栈。分析:通过一系列的栈的压入和弹出操作来分析用队列模拟一个栈的过程,如图所示,我们先往栈内压入一个元素a。由于两个队列现在都是空,我们可以选择把a插入两个队列中的任一个。我们不妨把a插入queue1。接下来继续往栈内压入b,c两个元素。我们把它们都插入queue1。这个时候 queue1包含3个元素a,b,c其中a位于队列的头部,c位于队列的尾部。现在我们考...

2019-07-28 15:58:00 168

转载 剑指offer第二版面试题8:用两个栈实现队列(JAVA版)

题目:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deletedHead,分别完成在队列尾部插入节点和在队列头部删除节点的功能。分析: 我们通过一个具体的例子来分析该队列插入和删除元素的过程。首先插入一个元素a,不妨先把它插入到stack1,此时stack1 中的元素有{a},stack2为空。再压入两个元素b和c,还是插入到stack1中,此时st...

2019-07-28 15:39:00 120

转载 剑指offer第二版面试题7:二叉树的下一个节点(JAVA版本)

题目:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。分析: 根据中序遍历的特点,要找到一个节点的下一个节点无非就是三种情况: 1、有右子树,这时只需要把其右孩子作为下一个遍历的(并不是要找的)节点,然后沿着该节点的左子树(如果有的话)出发,直到遇到叶子节点,那么该叶子节点就是其下一个要找的节点; ...

2019-07-28 14:50:00 150

转载 剑指offer第二版面试题6:重建二叉树(JAVA版)

题目:输入某二叉树的前序遍历和中序遍历的结果,请重新构造出该二叉树。假设输入的前序遍历和中序遍历的结果中不包含重复的数字。例如输入的前序遍历序列为{1,2,4,7,3,5,6,8}和中序遍历为{4,7,2,1,5,3,6,8},则重建出二叉树并输出它的头结点。前序遍历:根节点--》左节点--》右节点中序遍历:左节点--》根节点--》右节点后序遍历:左节点--》右节点--》根节...

2019-07-28 09:53:00 102

转载 剑指offer第二版面试题5:从尾到头打印链表(JAVA版)

题目描述:输入一个链表,从尾到头打印链表每个节点的值。返回新链表。import java.util.Stack;//定义链表结构class ListNode { int value; ListNode next;}public class PrintListReverse { public static void main(...

2019-07-27 16:57:00 108

转载 剑指offer第二版面试题4:替换空格(JAVA版)

题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“We are happy”,则输出”We%20are%20happy”.原因:在网络编程中,如果URL参数中含有特殊字符,如:空格、“#”等,可能导致服务器端无法获得正确的参数值。我们需要将这些特殊符号转换成服务器识别的字符。转换规则是在“%”后面跟上ASCII码的两位十六进制的表示。比如:空格的ASCII码是32...

2019-07-27 16:47:00 115

转载 剑指offer第二版面试题3:二维数组中的查找(JAVA版)

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。1 2 8 92 4 9 124 7 10 136 8 11 15思路:每次取右上角的一个数字(该例子中取9),如果9大于要找的数字则排除9的那列,否则派出9 的那行public clas...

2019-07-27 16:13:00 81

空空如也

空空如也

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

TA关注的人

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