自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

万万的学习笔记

仅供自己学习用整理 github.com/yr-wan

  • 博客(93)
  • 资源 (1)
  • 收藏
  • 关注

原创 今天发现了String.valueOf(null)的一个有意思的设定

今天写代码需要进行一个equals判断,刚开始我也没多想直接这么写的:Object oldValue = field.get(oldObj);Object newValue = field.get(newObj);if (!String.valueOf(oldValue).equals(String.valueOf(newValue))) { resultMap.put(fiel...

2019-04-12 09:16:06 2933

原创 好久没有更新博客了 19年3月个人总结

现在是在实习阶段,还是更喜欢用纸质的本子记笔记,翻阅起来很方便,所以好久没更新博客了XD纸质本子书写起来很有安全感,但是便携性欠缺,有iPad可以记笔记,但是电子笔记和纸质笔记还是有点不一样最近一个多月的学习时间表总结如下:2019-02-28 周四 安装开发环境,熟悉idea和maven 2019-03-01 周五 学习pom.xml的配置,了解Spring 20...

2019-04-09 11:18:17 223

原创 JavaBean的字段名命名大小写问题

字段的前两个字母要么全部大写,要么全部小写否则会出错:)JavaBean 中的属性是通过 get/set 方法名得来的,因此 :getSname 对应的属性名是 snamegetSName 对应的属性名是 SName如果写成 sName 或者 Sname 的话就是不合法的属性名。...

2019-03-05 16:41:32 518

原创 Maven中的dependencyManagement理解

Maven中的dependencyManagement相当于一个对所依赖jar包进行版本管理的管理器。pom.xml文件中,jar的版本判断的两种途径:1、如果dependencies中的dependency未声明version,则Maven会去dependencyManagement里寻找是否有对应的版本声明,如有,则继承,如果无,则报错;2、如果dependencies中的depe...

2019-03-01 11:59:30 764 1

原创 Maven无法加载Oracle驱动包的问题解决办法

由于Oracle授权问题,Maven3不提供Oracle JDBC driver,为了在Maven项目中应用Oracle JDBC driver,必须手动添加到本地仓库。如果本地安装有Oracle数据库的话,可以从安装路径:\product\11.2.0\dbhome_1\jdbc\lib,一般选择ojdbc6.jar。cmd输入命令:mvninstall:install-file...

2019-03-01 11:37:19 223

原创 IDEA默认Maven设置

IDEA是自带Maven的,但版本有点低,故自己下了新版的Maven,但每次使用创建或者导入Maven项目的时候,IDEA都会使用系统默认的Maven,如下图所示:此时,如果想默认使用自定义安装的Maven,需要点击Maven home directory进行配置。如果在创建时,想使用自动义安装的Maven,可以在File->Other Settings ->Setting...

2019-03-01 10:24:28 3598 1

原创 Maven学习记录

约定优先于配置,配置优先于编码Maven仓库:https://mvnrepository.com/为什么需要Maven?未学习Maven前可能会遇到的问题:①项目中需要用到的jar包需要手动一个个复制粘贴到lib目录下,导致重复jar包过多,项目臃肿;②手动下载的jar包来源不同,内容可能不规范;③一个jar包所依赖的其他jar包也需要手动导入,过程十分复杂繁琐,增加了学习成本...

2019-03-01 09:32:39 79

原创 把数组排成最大的数

前几天做到这个题,当时蒙住了,只想着按位比较,把拼接比较给忘了,现在想了一下发现自己那时候好蠢,记录一下 题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最大的一个思路:将整型数组转换成String数组,然后将String数组排序,把m和n拼接成的mn和nm按照字符串大小的比较规则来处理即可,如果mn < nm,应该打印出nm,即n应该排在m...

2018-10-08 00:15:49 333

原创 数据结构的Java实现(十四)—— 图

1、图的定义图通常有个固定的形状,这是由物理或抽象的问题所决定的。比如图中节点表示城市,而边可能表示城市间的班机航线。如下图是美国加利福利亚简化的高速公路网:  ①、邻接:如果两个顶点被同一条边连接,就称这两个顶点是邻接的。如上图 I 和 G 就是邻接的,而 I 和 F 就不是。②、路径:从某顶点到另一顶点经过的边的序列。比如从顶点B到顶点J的路径为 BAEJ。③、...

2018-10-02 20:26:17 92

原创 Java中Runnable()和Callable()的区别

区别点:Callable规定的方法是call(),Runnable规定的方法是run(); Callable的任务执行后可返回值,而Runnable的任务是不能返回值; call方法可以抛出异常,run方法不可以;相同点:两者都是接口; 两者都需要调用Thread.start()启动线程;...

2018-09-28 23:21:36 1085

原创 栈和队列 互相实现

两个栈实现一个队列import java.util.Stack;// 用两个栈实现队列public class MyStackToQueue { Stack<Character> s1 = new Stack<>();// 负责入列 Stack<Character> s2 = new Stack<>();// 负责出列 publi...

2018-09-28 12:12:28 122

原创 数据结构的Java实现(十三)—— 堆

1、堆的定义①、它是完全二叉树,除了树的最后一层节点不需要是满的,其它的每一层从左到右都是满的。注意下面两种情况,第二种最后一层从左到右中间有断隔,那么也是不完全二叉树。②、它通常用数组来实现。这种用数组实现的二叉树,假设节点的索引值为index,那么:节点的左子节点是 2*index+1 节点的右子节点是 2*index+2 节点的父节点是 (index-1)/2③...

2018-09-26 22:24:58 74

原创 数据结构的Java实现(十二)—— 哈希表

Hash表也称散列表,Hash表是一种根据关键字值(key - value)而直接进行访问的数据结构。它基于数组,通过把关键字映射到数组的某个下标来加快查找速度,但是又和数组、链表、树等数据结构不同,在这些数据结构中查找某个关键字,通常要遍历整个数据结构,也就是O(N)的时间级,但是对于哈希表来说,只是O(1)的时间级。注意,这里有个重要的问题就是如何把关键字转换为数组的下标,这个转换的函数称...

2018-09-26 21:39:57 112

原创 数据结构的Java实现(十一)—— 红黑树

二叉搜索树对于某个节点而言,其左子树的节点关键值都小于该节点关键值,右子树的所有节点关键值都大于该节点关键值。二叉搜索树作为一种数据结构,其查找、插入和删除操作的时间复杂度都为O(logn)。但这个时间复杂度是在平衡的二叉搜索树上体现的,也就是如果插入的数据是随机的,则效率很高,但是如果插入的数据是有序的,比如从小到大的顺序【10,20,30,40,50】插入到二叉搜索树中:  从大到小就...

2018-09-26 01:37:52 80

转载 List、set、Map的底层实现原理

原文:https://blog.csdn.net/xzp_12345/article/details/79251174目录ArrayList实现原理要点概括LinkedList实现原理要点概括HashMap实现原理要点概括Hashtable实现原理要点概括ConcurrentHashMap实现原理要点概括HashSet实现原理要点概括LinkedHashMap实现原...

2018-09-25 01:53:41 1801

转载 Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析

原文:https://javadoop.com/post/hashmap今天发一篇”水文”,可能很多读者都会表示不理解,不过我想把它作为并发序列文章中不可缺少的一块来介绍。本来以为花不了多少时间的,不过最终还是投入了挺多时间来完成这篇文章的。网上关于 HashMap 和 ConcurrentHashMap 的文章确实不少,不过缺斤少两的文章比较多,所以才想自己也写一篇,把细节说清楚说透,尤...

2018-09-25 00:45:07 86

原创 ArrayList循环遍历并删除元素的陷阱

import java.util.ArrayList;public class ArrayListRemove { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("a"); list.add("b");...

2018-09-24 23:23:29 1423

转载 MySQL索引背后的数据结构及算法原理

原文链接:http://blog.codinglabs.org/articles/theory-of-mysql-index.html 目录摘要数据结构及算法基础索引的本质B-Tree和B+TreeB-TreeB+Tree带有顺序访问指针的B+Tree为什么使用B-Tree(B+Tree)主存存取原理磁盘存取原理局部性原理与磁盘预读B-/+T...

2018-09-24 17:11:53 86

原创 MySQL的四种事务隔离级别

一、事务的基本要素(ACID)原子性(Atomicity):事务是一个不可分割的单位。事务中的操作,要么全部做完,要么全部不做。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。 一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。必须使数据库从一个一致性状态变换到另一个一致性状态。比如A向B转账,不可能A扣了钱,B却没收到。 隔离...

2018-09-24 16:57:20 142

转载 Java的四种引用 强引用 软引用 弱引用 虚引用

原文:https://www.cnblogs.com/yw-ah/p/5830458.html强引用:只要引用存在,垃圾回收器永远不会回收Object obj = new Object();//可直接通过obj取得对应的对象 如obj.equels(new Object());而这样 obj对象对后面new Object的一个强引用,只有当obj这个引用被释放之后,对象才会被释放...

2018-09-24 15:07:42 94

原创 Java 垃圾回收机制与几种垃圾回收算法

一、如何确定某个对象是“垃圾”?这一小节先了解一个最基本的问题:如果确定某个对象是“垃圾”?既然垃圾收集器的任务是回收垃圾对象所占的空间供新的对象使用,那么垃圾收集器如何确定某个对象是“垃圾”?通过什么方法判断一个对象可以被回收了。在java中是通过引用来和对象进行关联的,也就是说如果要操作对象,必须通过引用来进行。那么很显然一个简单的办法就是通过引用计数来判断一个对象是否可以被回收。不失...

2018-09-24 14:52:46 21524 1

转载 JVM的新生代、老年代、永久代(元空间)、MinorGC、MajorGC

转载自:https://www.cnblogs.com/ygj0930/p/6522828.html目录一、新生代:二、老年代:三、永久代:参考资料:http://blog.csdn.net/flamezyg/article/details/44673951http://www.blogjava.net/ldwblog/archive/2013/07/24/401919...

2018-09-24 01:26:20 1188

转载 GC详解及Minor GC和Full GC触发条件总结

原文:https://blog.csdn.net/yhyr_ycy/article/details/52566105GC,即就是Java垃圾回收机制。目前主流的JVM(HotSpot)采用的是分代收集算法。与C++不同的是,Java采用的是类似于树形结构的可达性分析法来判断对象是否还存在引用。即:从gcroot开始,把所有可以搜索得到的对象标记为存活对象。GC机制要准确理解Java的垃...

2018-09-24 01:22:27 2774

原创 JVM优化之 -Xss -Xms -Xmx -Xmn 参数设置

XmnXmsXmxXss有什么区别Xmn、Xms、Xmx、Xss都是JVM对内存的配置参数,我们可以根据不同需要区修改这些参数,以达到运行程序的最好效果。-Xms 堆内存的最小大小,默认为物理内存的1/64-Xmx 堆内存的最大大小,默认为物理内存的1/4-Xmn 堆内新生代的大小。通过这个值也可以得到老生代的大小:-Xmx减去-Xmn-Xss 设置每个线程可使用的内存大小,即...

2018-09-24 01:11:53 37991

原创 Eclipse Memory Analyzer —— MAT查找内存泄漏工具

一、MAT是什么?MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存中对象的占用大小,看看是谁阻止了垃圾收集器的回收工作,并可以通过报表直观的查看到可能造成这种结果的对象。二、如何使用MAT本文以一...

2018-09-24 00:12:42 10623

原创 Java代理模式 静态代理 动态代理

目录静态代理动态代理代理的基本构成抽象角色:声明真实对象和代理对象的共同接口,这样可在任何使用真实对象的地方都可以使用代理对象。 代理角色:代理对象内部含有真实对象的引用,从而可以在任何时候操作真实对象。代理对象提供一个与真实对象相同的接口,以便可以在任何时候替代真实对象。代理对象通常在客户端调用传递给真实对象之前或之后,执行某个操作,而不是单纯地将调用传递给真实对象,同时,代理...

2018-09-23 16:45:30 107

原创 MySQL中乐观锁、悲观锁、共享锁、排它锁、行锁、表锁的概念

乐观锁乐观锁是指在操作数据库时(更新操作),想法很乐观,认为此次操作不会导致冲突,所以在操作数据时,不进行任何其他的特殊处理(也就是不加锁),而在进行更新后,再去判断是否有冲突。悲观锁悲观锁是指在操作数据库时(更新操作),想法很悲观,认为此次操作会出现冲突,所以在进行每次操作时都要通过获取锁才能进行对相同数据的操作,悲观锁需要耗费较多的时间。类似java中的synchronized...

2018-09-22 11:58:28 200

原创 MySQL主从复制

1、什么是主从复制 主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是准实时的业务数据库。2、主从复制的作用 做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。 架构的扩展。业务量越来越大,IO访问频率过高,单机无法满足,此时做多库的存储,降低磁盘IO访问的频率,提高单个机器的I/O性能。 ...

2018-09-22 11:43:20 109

原创 Java实现单链表的反转

Node类: public class Node { int data; Node next; public Node(int data) { this.data = data; }}迭代实现:先将下一节点记录下来,然后让当前节点指向上一节点,再将当前节点记录下来,再让下一节点变为当前节点public static Node rev...

2018-09-21 00:26:46 218

原创 Java中String为什么设计成不可变类

1、字符串常量池字符串常量池是方法区中一块存储区域,当创建一个字符串常量的时候,判断该字符串字在符串字符串常量池中是否已经存在,只有当字符串是不可变的,字符串池才有可能实现。如果存在,返回已经存在的字符串的引用;如果不存在,则创建一个新的字符串常量,并返回其引用。String string1 = "abcd";String string2 = "abcd";变量string1,s...

2018-09-20 23:45:32 402

原创 Java中Comparable和Comparator的区别

一、Comparable简介Comparable是排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序。此外,实现此接口的对象可以用作有序映射中的键或有序集合中的集合,无需指定比较器。该接口定义如下:package java.lang;...

2018-09-20 13:50:32 52

原创 Integer的缓存机制

public class CompareExample { public static void main(String[] args) { Integer num1 = new Integer(100); Integer num2 = new Integer(100); System.out.println(num1 == num2); System.out.print...

2018-09-20 13:10:26 2004

转载 BIO与NIO、AIO的区别

  IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。一、BIO     在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者遭到...

2018-09-20 12:41:12 48

原创 jvm是如何判断两个类是否相等的

通过两种方式:①类的全限定名②类的加载器我们知道,类的加载主要分为以下三步:1、加载:根据路径找到对应的.class文件2、连接:又分为验证:检查待加载的class正确性 准备:给类的静态变量分配空间 解析:将符号引用转为直接引用3、初始化:对静态变量和静态代码块执行初始化工作加载阶段通过类的全限定名来获取定义此类的二进制字节流,并将字节流的静态存储结构转化为方法区的运行...

2018-09-17 12:09:59 899

原创 输入一个正整数n,计算出[0,n]这些整数中的二进制数没有连续3个1的数字有多少

输入描述一个正整数n,范围在[1, 2^31 - 1]输出描述从0到n这n+1个数中,有多少个数满足条件:该数的二进制表示没有3个连续的1输入一9输出一90-9这十个数中只有7(111)不满足条件,因此输出为9。输入二17输出二150-17这十八个数中,7(111)、14(1110)、15(1111)不满足条件,因此输出为15。...

2018-09-16 01:28:51 669

原创 数据结构的Java实现(十)—— 二叉树

目录树二叉树树树(tree)是一种抽象数据类型(ADT),用来模拟具有树状结构性质的数据集合。它是由n(n>=0)个有限节点组成一个具有层次关系的集合。节点一般代表一些实体,在java中节点一般代表对象。连接节点的线称为边,一般从一个节点到另一个节点的唯一方法就是沿着一条顺着有边的道路前进,在Java中边通常表示引用。特点:每个节点有零个或多个子节点;没有父节点的节点称为...

2018-09-14 15:11:44 190

原创 使用异或交换两个相同数的小问题

通过异或运算不需要任何中间变量交换即可实现数, 如下:public void swap(int a, int b) { a ^= b; b ^= a; a ^= b;}但是当两个数值相同时,则变成了:a ^= a;a ^= a;a ^= a;结果输出a为0,这是我们不想看到的改进如下:public void swap(int a, int b) { i...

2018-09-10 13:24:02 395 2

原创 数据结构的Java实现(九)—— 希尔排序、快速排序

目录希尔排序快速排序在三种简单排序算法中,介绍了插入排序、冒泡排序、选择排序,它们的时间复杂度都是O(n2),在数据量大时,这三种排序所需要的时间是很难令人接受的。在上一篇介绍递归时,提到了归并排序,它的时间复杂度是O(NlogN),比简单排序快了很多,但它仍有个缺点,就是空间复杂度为O(n),当需要排序的数据占据了整个内存的一半以上的空间时,无法使用归并排序。本文介绍两种高级...

2018-09-10 13:11:15 198

原创 数据结构的Java实现(八)—— 递归

目录例:斐波那契数列例:有序数组的二分法查找例:汉诺塔问题 例:归并排序例:背包问题什么是递归? 是一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合...

2018-09-09 20:24:48 147

原创 数据结构的Java实现(七)—— 单向链表、双端链表、双向链表

目录单向链表(Single Linked List)双端链表(HeadTailLinkedList)双向链表(DoubleLinkedList)总结链表(Linked List)是一种物理存储单元上非连续、非顺序的存储结构,它既可以表示线性结构,也可以用于表示非线性结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点组成,结点可以在运行时动态生成。每个...

2018-09-08 01:36:28 145

尚硅谷 视频 java android HTML5

尚硅谷 视频 java python HTML5 截至到2018.8.29 最新的全部链接

2018-08-29

空空如也

空空如也

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

TA关注的人 TA的粉丝

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