自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (1)
  • 收藏
  • 关注

原创 ThreadLocal源码理解

ThreadLocal其实原理是创建了多份相同数据保存在堆内存上,每个线程的Thread类里有ThreadLocal.ThreadLocalMap threadLocals的属性来指向存位置, 所以每个线程修改都不会影响到其他线程的数据 首先说下下面用到的东西:ThreadLocalMap为ThreadLocal的静态内部类,他有Entry[]数组来存放本地变量static class Entr

2017-06-24 10:58:07 1459

原创 MySQL MVCC

REPEATABLE READ(可重复读)MVCC的具体操作 InnoDB的MVCC,是通过在每行记录后面保存俩个隐藏的列来实现的,这俩个列,一个保存行的创建时间,一个保存行的过期时间。当然并不是实际的时间值,而是版本号。每开始一个事务,系统版本号都会自动递增。事务开始时刻的系统版本号会作为事务的版本号,用来和查询到的每行记录的版本号进行比较。 SELECT Innodb检查每行

2017-06-10 14:05:55 1093

原创 Java代码块执行顺序

先定义一个输出类 public class Output { private String out; public Output(String out){ System.out.println(out); } } 父类 public class CodeBlockExecutedParent { private static Output out1=new Output("

2017-02-14 16:05:46 1610

原创 快排算法

分析:快排主要思想是先在(1).数组中找一个作为基准,拿这个基准把比它大的放一边,比它小的放在另一边;然后再把它左右俩边的重复(1)操作 实现:(我将第一个元素作为基准) public static void QuickSort(int[] numbers,int a,int b){ if(a>=b) return;  int tag=numbers[a],i=a,j=b; while

2017-02-04 22:10:09 299

原创 替换字符--《剑指offer》

题目描述:给定一个字符数组,将其中的某一字符替换为其他几个字符;如we are tf将空格替换为%20,结果为we%20are%20tf(字符数组后有足够位置) 分析:如果从前往后替换则一些字符会多次移动浪费时间,如果能一次将其放入位置一定会减少资源利用的 思路:遍历一遍算出每个字符要移动到的位置,以便一次移动到目标位置 实现: public static void

2017-01-14 20:27:40 254

原创 选择、插入、冒泡排序实现和比较

看代码 我自己把选择和冒泡搞混了,所以在这里给那些可能搞混的人说明一下,选择和冒泡是俩个不同的代码,简单的来说选择排序每次遍历只交换一次(或不交换),冒泡排序则可能交换多次,虽然这三者时间复杂度都为O^2,但选择好像是最快的在这三者中,冒泡最慢,主要原应是交换的次数,选择交换最少。 public class Sort_Comparable { /** * 判断俩个对象(实现Co

2016-10-24 21:10:03 267

原创 Activity生命周期小知识

Activity生命周期图 onCreate()方法在Activity创建的时候调用,onStart()方法在启动时被调用,onResume()方法在onStart()方法完成后调用,onPause()方法在Activity暂停时被调用,onStop()方法在Activity停止时被调用,onRestart()方法在重新启动Activity是调用,onDestroy()方

2016-09-23 22:41:44 338

原创 简单五子棋

五子棋的的制作主要是练习自定义View,看慕课网上的视屏做了个简单的五子棋。----------欢迎指出问题 自定义View(主要是对棋盘的绘制,设置点击事件绘制棋子) 先在onMeasure()方法里获得设置自定义view的宽高,在onSizeChanged()中获得有效宽度并设置棋子大小使棋子适应棋盘,通过设置棋盘的行数MAX_LINE与有效宽度获得行高,在onDr

2016-09-19 19:47:36 427

简单五子棋实现

根据慕课网上的视屏做的简单五子棋

2016-09-19

空空如也

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

TA关注的人

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