自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM学习笔记之内存模型(一)

概念: Java虚拟机在执行Java程序过程会把内存划分为若干个区域,大致可以分为线程共享区和线程私有区,如图:线程私有区每个线程都有自己的虚拟机栈、本地方法栈、程序计数器1.虚拟机栈:存储当前线程运行方法所需的数据、指令、返回地址且虚拟机栈以栈帧的形式存储。看下面简单的代码public class Test { public static void main(String[] args) { work(); } public static

2020-09-22 12:08:30 76

原创 CAS是什么?(思想)

英文:CompareAndSwap判断内存某个位置的值是否为预期值,如果是则更改为新值说白了就是比较和交换三行代码解释其作用:首先我们创建AtomicInteger原子类,给他赋值为5,不了解原子类的可以暂时把他看成一个普通的Int类型。然后调用compareAndSet(5, 6)方法,这个参数 5 跟atomicInteger 的值(5)进行对比,如果相等,则将参数值6赋值给atomicInteger ,结果返回true,如果不相等,不做任何处理,返回false AtomicInteger

2020-08-24 18:08:19 313

原创 多线程下的懒汉式(单例)问题以及解决办法

单线程下的懒汉模式public class SingletonDemo { private static SingletonDemo instance=null; private SingletonDemo(){ System.out.println(Thread.currentThread().getName()+"\t 我是构造方法"); } public static SingletonDemo getInstance(){ if(in

2020-08-24 16:29:21 725

原创 java通过反射访问(私有)构造方法(创建对象)

//首先我们创建一个Person类,有一个有参构造方法和一个无参构造方法 Person{ private String name; private int age; Person(){} Person(String name,int age){ this.name = name; this.age = age; ...省略getter和setter } } //这里的参数是Person所处在的包 Class <Person> pClass = (C

2020-07-23 11:27:22 1739

原创 java使用Json

JSON一种轻量级的数据交换格式格式: { “name” : “zhangsan” , “age” : “18”}可以嵌套[]数组,{}对象如:{ "num" : ["1","2","3",{ "n":"10", "n1":"20" } ] }使用方法使用Gson //创建Gson对象 Gson g = new Gson(); //创建书本对象 Book book = new Book("1","平凡的世界","你我皆平凡

2020-07-22 16:08:22 68

原创 idea debug工具常用的按钮解释

首先我们箭头所指的位置单击,出现红点,一个红点为一个断点,debug模式运行到此断点位置暂停。进入debug模式debug界面先从左边侧边栏上到下开始说起代表重新运行代表运行到下一个断点停止运行显示所有断点屏蔽所有断点接下来说上工具栏让你的光标回到当前实行断点的位置让你的程序向下一行代码执行,运到调用方法不进去如果当前行调用方法,如果是自己编写的则跳到此方法,反之则执行下一行代码运到任何调用的方法跳入返回上一行执行执行到光标所指位置完。有时间再补

2020-07-22 10:51:12 1179

原创 线程与进程的笔记

进程:是指内存运行的应用程序,如:qq , 网易云软件,打开任务管理器就可以查看计算机所有的进程。且有自己独立的内存空间。线程:是进程的一个执行单位,共享一个内存空间(堆),拥有自己的栈空间,一个进程至少有一个线程线程调度:分时调度: 平均分配抢占式调度:看优先级,如优先级相同则随机,java使用该调度多线程的实现继承Thread类实现Runnable接口线程的中断线程中断调用interrupt(),线程只是捕获这个中断标记,具体中断实现需要自己编写。守护线程set

2020-07-20 14:27:21 75

原创 每日一道算法题之二叉搜索树的后序遍历序列

题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。参考以下这颗二叉搜索树: 5 / \ 2 6 / \ 1 3示例 1:输入: [1,6,3,2,5]输出: false示例 2:输入: [1,3,2,6,5]输出: true分析:1. 后续遍历遍历顺序为:左右中,所以最后一个数为根节点。2. 左节点的值小于根节点3. 右节点的值大于根节

2020-07-15 20:54:32 65

原创 每日一道算法题之包含min函数的栈

题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.min(); --> 返回 -3.minStack.pop();minStack.top(); --> 返回

2020-07-09 17:44:53 68

原创 每日一道算法题之顺时针打印矩阵

题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]分析:遍历如图所示:可以用4个for循环打印,按照如上图所示打印当打印完1,2,3,4时,上边框+1打印4,5,6

2020-07-09 16:56:57 224

原创 每日一道算法题之二叉树的镜像反转

题目:完成一个函数,输入一个二叉树,该函数输出它的镜像。例如输入:镜像输出:示例 1:输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1]思路:利用递归遍历二叉树交换左右节点。demo:class Solution { public TreeNode mirrorTree(TreeNode root) { if(root == null) return null; TreeNode temp = root.l

2020-07-09 15:22:00 134

原创 每日一道算法题之剪绳子

题目:给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。示例 1:输入: 2 输出: 1 解释: 2 = 1 + 1, 1 × 1 = 1示例 2:输入: 10 输出: 36 解释: 10 = 3 + 3 + 4, 3 ×

2020-07-05 14:44:12 465

原创 每天一道算法题之机器人的运动范围

题目描述:地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?示例 1:输入:m = 2, n = 3, k = 1 输出:3示例 2:输入:m

2020-07-04 23:16:06 145

空空如也

空空如也

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

TA关注的人

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