自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Integer缓存问题

java内部为了节省内存,IntegerCache类中有一个数组缓存了值从-128到127的Integer对象。当我们调用Integer.valueOf(int i){这一步自动装箱就会用到}的时候,如果i的值时结余-128到127之间的,会直接从这个缓存中返回一个对象,否则就new一个新的Integer对象。即:当我们定义两个Integer的范围在【-128—+127】之间,并且值相同的时候,...

2018-10-18 20:07:43 907

原创 数据结构大纲(自我总结用)

线性表   顺序存储结构:我们常用的数组   链式存储结构:链表串:    由多个或零个组成的有限序列,又名字符串。树:    树是多个结点的有限集,表示法:顺序表:双亲表示法:通过一个数组存储结点信息,结点包括下标,data域,和一个双亲指针(双亲结点的下标),但是如果我们需要找到某个结点的孩子结点,我们需要遍历整个数组孩子表示法:我们为了更快的找到孩子,...

2018-10-16 15:34:58 450

原创 mysql中的MVCC

学任何东西都是循序渐进的过程之前看了这方面的东西,那时候很心急,因此很多东西不能完全理解。今天再次拿出来看首先学习MVCC我们先要去学习redo log 和undo log这些日志是干嘛的undo log:存储了数据先前的版本我们的mysql事务有一特性称为原子性,undo log就完成了这一特性。它是这样实现的:首先我们将数据读取到内存中,然后在内存中修改数据,在修改任何数据...

2018-10-14 17:30:23 498

原创 java线程间通信方式

1.同步就是通过Synchronized关键字来进行同步访问控制,确保谁拿到了相应的锁才能执行相应的操作本质上就是共享内存式的通信,这个共享内存在java的内存模型中就是主内存,相当于通过主内存的数据进行线程通信。因Synchronized解锁时会将工作内存中的数据刷新到主内存中,Synchronized加锁时会将工作内存中的值清空从主内存读。多个线程访问同一变量,谁拿到了锁谁就去访问。...

2018-10-13 17:41:11 1082

原创 java如何查看死锁

首先我们先写一个死锁程序public class DeadLock { public static void main(String[] args) { new Thread(new Runnable() { @Override public void run() { synchroniz...

2018-10-13 15:41:10 1181

原创 spring中用到的设计模式(自我总结)

我们从spring的xml文件讲起当我们使用<bean id="xxx">时,我们通过反射建立类这时候创建类就是通过工厂模式来创建的,并且我们创建的类可以设置scope的,如果设置singleton的话,就是单例,使用了单例模式,并且在aop中使用了动态代理,所以目前我熟悉的就三个。...

2018-10-13 14:25:44 384 1

原创 线程池中的线程工厂

倒数第二个参数就是我们的主角,线程工厂,顾名思义就是用来生成线程的工厂,为了创建具有相似特性的线程所以使用它,例如守护线程等 

2018-10-12 20:57:02 2322

原创 线程池拒绝策略

今天看了线程池的拒绝策略:我们看下ThreadPoolExecutor的API:看它的构造方法:最后一个参数就是今天的主角:拒绝策略首先点开这个类我们发现他是一个接口,点开它的实现类,我们发现这些实现类就是我们所说的各种任务拒绝策略我们一个一个分析首先我们发现构造方法里有不需要拒绝策略的构造方法。那么一定就有一个默认的构造方法我们从这个讲起:这就是我们的默认...

2018-10-12 20:51:31 1777 1

原创 如何让多个线程按照顺序执行

两种方法:假设如下:                如果有a,b,c三个线程,我们依次执行这三个线程。因为不保证有序性,可能执行出来是混乱的解决如下:第一种使用join()方法,这个方法的作用是,让当前执行线程等待直到调用join方法的线程结束运行代码如下:class Thread1 extends Thread{ public void run(){ ...

2018-10-12 19:21:20 4782

原创 MYSQL中为什么索引不宜建在重复数据多的列上

昨天想了一天这个问题首先我们先粗略的说一说:加入有一个查询语句要查询性别为男生的数据,因为这样的数据很多,我们要扫描很多次索引,然后再去取这个性别为男的数据。那么分为两部分,先扫描索引,然后去取这个符合要求的数据如果我们不建立索引,那么去扫描整个表。不建立索引需要的时间=T扫描整个表                            建立索引需要的时间= T去索引中取+T取...

2018-10-08 11:51:11 17165 4

原创 剑指Offer刷题笔记(java实现)_39.数组中次数超过一半的数字

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入数组:{1,3,3,2,3,2,3,3,2}。由于2在数组中出现了5次,超过数组长度的一半,因此要输出2。三种解法:第一种遍历数组,利用hashMap存储每个数字出现的次数,时间复杂度O(n)第二种:如果一个数组排好序,并且这个数组中有一个数字超过数组的一半,那么位于中间位置的一定是这个数第三种:我们这么想,...

2018-10-07 16:18:31 213

原创 剑指Offer刷题笔记(java实现)_26.树的子结构

题目描述:  输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)。 其实思路很简单:我们的算法就通过比较即可,因为是树的遍历比较所以第一时间想到了递归先假设母树为A,子树为B(1)我们先去判断节点的第一个点的值是否相同,如果相同则进一步遍历以这个节点相同的左右子树是否和B的起点的左右子树的值都相同(2)如果比较的当前头结点的值都不...

2018-10-06 21:13:16 210

原创 剑指Offer刷题笔记(java实现)_16.剪绳子

题目:给一段绳子长为m,我们可以剪n次(m>1,n>1),问剪得的各段绳子长度之积的长度最大为多少。我们要讲两个方法:叫做动态规划和贪心算法先说动态规划:如果一个问题是求最优解,并且该问题能够分为多个子问题,并且 子问题之间有重叠的更小子问题所以,在用动态规划之前先分析能否将大问题分为多个小问题,分解后的小问题要存在最优解,那么小问题的最优解最合起来就能得到整个问题...

2018-10-06 12:02:31 293

原创 剑指Offer刷题笔记(java实现)_16.数值的整数次方

题目很简单,我们要求出一个数值的整数次方思路:最简单的就是通过一个循环,每次循环乘上一个底数,最后就得到了我们想要的结果但是这样的方法并不高效率,我们之前学习过斐波那契数列,和这个有些类似我们发现一个数的16次方就等于8次方乘8次方,8次方有等于4次方*4次方。我们会发现这样的计算方法高效很多。既然是一个大问题向下分解,分解为多个小问题, 那么我们就是使用递归注意:如果我们接受...

2018-10-06 11:33:39 251

原创 剑指Offer刷题笔记(java实现)_12_矩阵中的路径

设计一个函数,用来判断一个矩阵中是否存在一条包含某字符串所有字符路径,起点可以从任意一格开始,并且不能重复踏入同一个格子例如  a b t g         c f  c s         j d e h如果给定一个bfce ,那么我们从b走向下到f向右到c向下到e说明有这个字符串的路径解题思路:按照上下左右的顺序,依次试探,如果到了死路,则一直回溯到上一个可用节点p...

2018-10-05 23:32:35 231

空空如也

空空如也

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

TA关注的人

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