自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2021-08-03

Android App之ANR处理1, 你碰到ANR了吗?在App使用过程中, 你可能遇到过这样的情况:恭喜你, 这就是传说中的ANR.1.1 何为ANRANR全名Application Not Responding, 也就是"应用无响应". 当操作在一段时间内系统无法处理时, 系统层面会弹出上图那样的ANR对话框.1.2 为什么会产生ANR在Android里, App的响应能力是由Activity Manager和Window Manager系统服务来监控的. 通常在如下两种情况下会弹出A

2021-08-03 14:10:11 404 1

原创 线程池以及的它7大参数学习

一、线程池:介绍: 它的工作主要是控制运行线程的数量,处理过程中将任务放入队列。然后在线程创建后启动这些任务,如果线程数量超过了最大数量,超过数量的线程排队等候,等其他线程执行完毕再从队列中取出任务执行。特点: 线程复用,控制最大并发数,管理线程。一、降低资源消耗。通过重复利用已创建的线程,降低线程创建和销毁造成的损耗。二、提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行...

2019-08-20 00:32:26 274

原创 java 实现---在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。

题目: 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5思路:1、首先添加一个头节点,以方便碰到第一个,第二个节点就相同的情况2、设置 pre ,last 指针, pre指针指向当前确定不重复的那个节点,而last指针相当...

2019-08-19 10:44:09 272

原创 java基础--Object类的常见方法总结

Object类使所有类的父类,常见的9个:1、getClass()//native方法,用于返回当前运行时对象的Class对象public final native Class<?> getClass()用final修饰,所以不允许子类重写。2、 hashCode()//native方法,用于返回对象的哈希码主要使用在哈希表中,比如JDK中的 HashMap。 public n...

2019-08-19 00:15:37 131

原创 创建线程第三种方法---Callable接口

创建线程相信大家都很熟悉,常用的就是继承Thread类和实现Runnable接口。今天学习第三种方法,Callable接口和Future 来创建线程。Callable类似于Runnable接口,但是Callable功能强于Runnable,它有返回值,线程执行后返回值可以被Futrue拿到。Callable需要依赖FutrueTask来接收结果,FutureTask是Future接口的实现类...

2019-08-18 17:46:17 114

原创 java多线程--生产者消费者模式三种实现

方法一、传统版用 synchronized wait() 和notify() 方法实现:资源类: public class Resource { private int apple = 0; public synchronized void increace() { // while (apple !=...

2019-08-17 23:27:27 226

原创 多线程学习--工具类(CountDownLatch、CyclicBarrier、Semaphore)

一、CountDownLatch(做减法)介绍:同步工具类,允许一个或多个线程一直等待,直到其他线程执行完后再执行。原理:通过一个计数器初始化为线程数量,当每个线程完成了自己的任务,计数器就减1.当计数器为0,表示所有线程都已完成任务。然后再闭锁上等待的线程就可以恢复执行任务。countdown()方法await()方法例子:当教室里有6个同学(线程)上自习,班长(主线程)要等到六位同学...

2019-08-16 22:20:30 90

原创 集合类不安全问题----ArrayList,Set,Map

一、问题在开发中会经常使用ArrayList、Set、Map集合来存取数据,当我们在单线程下这种方式是没有任何问题的。但是当遇到多个线程来进行操作的时候就会出现问题。下面是示例://用30个线程来进行操作,给list中添加一个8位的随机数public static void main(String[] args) { List<String> list=new Arra...

2019-08-10 20:48:24 110

原创 java--跳跃游戏

题目: 给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例:输入: [2,3,1,1,4]输出: true解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大...

2019-08-10 09:44:36 643

原创 几种常见的二叉树介绍

一、二叉树1.每个节点最多只能有两个子节点的形式称为二叉树;2.满二叉树: 二叉树的所有叶子结点都在最后一层,并且节点总数=2^n-1,n为层数;3.完全二叉树: 二叉树的所有叶节点都在最后一层或者倒数第二层,而且最后一层的叶子结点在左边连续,倒数第二层的叶子结点在右边连续;二、二叉排序树(BST Binary Sort(Search) Tree):1.任何一个非叶子结点,要求左子节点的...

2019-08-09 12:13:27 1699

原创 SQL基础语句(二)

DML语句(四)、聚合 常用的聚合函数 sum(求和)、count(*) 记录数、max min 。1.select count(1) from emp; 在表emp中统计公司总人数。2.select deptno,count(1) from emp group by deptno;在上面基础上统计各个部门的人数;3.select deptno,count(1) from emp gro...

2019-08-08 20:35:07 183

原创 java反转链表--输入一个链表,反转链表后,输出新链表的表头。

题目:输入一个链表,反转链表后,输出新链表的表头。思路:当前节点为head,定义一个pre指向head的前一个节点,next指向head的下一个节点。需要pre和next的目的是让当前节点,从pre->head->next1->next2,变成pre<-head next1->next2。//节点类class ListNode { int val; ...

2019-08-08 19:19:19 409 1

原创 java合并两个有序链表---将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

题目:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路: 递归终止条件:两条链表分别名为 l1和 l2,当 l1 为空或 l2 为空时结束返回值:每一层调用都返回排序好的链表头本级递归内容:如果 l1 ...

2019-08-08 09:49:32 402

原创 Docker安装与基本使用

一、Docker介绍:Docker是一个开源的应用容器引擎,是一个轻量级容器的技术。Docker支持将软件编译成一个镜像;然后再镜像中各种软件做好配置,将镜像发布,使用者可以直接用这个镜像。运行中的这个镜像称为容器。二、概念:docker主机(Host):安装了Docker程序的机器(它可以直接安装在操作系统之上);docker客户端(Client):连接docker主机进行操作;**...

2019-08-07 18:48:51 138

原创 java--输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)

题目描述:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)思路:先设置一个标志位result = false,当匹配成功result就为true,否则默认返回false。判断根节点是否相同,如果相同就递归调用方法如果根节点不同,就判断tree1的左子树和tree2是否相同,如果不同就再判断右子树是否和tree2相同。两棵树都不为空才继续判断,如果...

2019-08-07 09:42:27 345

原创 JAVA多线程(一)

一、多线程技能1.进程: 操作系统结构的基础,一次程序的执行;受操作系统管理的基本运行单元线程: 在进程中独立运行的子任务,进程的最小单位。并发: 用户线程与垃圾收集线程同步执行,用户程序在继续运行,而垃圾收集程序运行于另一个CPU上并行: 指多条垃圾收集线程同时执行,但此时用户线程仍然处于等待状态。2.创建线程的方法:2.1 继承Thread类public class MyThr...

2019-08-06 20:19:24 80

原创 java实现:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。

题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路:二叉搜索树: 左节点全都小于根节点,右节点大于根节点。后序遍历结果: 最后一个元素肯定为根节点,前半部分小于后半部分。1、确定root;2、遍历序列(除去root结点),找到第一个大于root的位置,则该位置左边为左子树,右边为右子树;...

2019-08-06 10:16:54 446

原创 java实现--输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1

题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)思路: 借用一个辅助的栈,遍历压栈顺序,先讲第一个放入栈中,这里是1,然后判断栈顶元素是不...

2019-08-03 09:50:06 298

原创 java实现--从上往下打印出二叉树的每个节点,同层节点从左至右打印。

题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。思路: 借用ArrayList模拟一个队列,将二叉树节点按照顺序依次入队列。//节点类public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) ...

2019-08-03 09:39:13 279

原创 SpringBoot日志学习总结

首先,SpringBoot选用SLF4j和logback作为日志;SLF4j:日志门面(即日志的抽象层)logback:日志实现。1、SLF4j使用1、如何在系统中使用SLF4j https://www.slf4j.org开发的时候,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面的方法; 给系统里面导入slf4j的jar和 logback的实现jarimpor...

2019-08-02 16:56:41 245

原创 java实现:输入两个整数序列,第一个序列表示栈的压入顺序, 请判断第二个序列是否可能为该栈的弹出顺序。

题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)思路:入栈1,2,3,4,5出栈4,5,3,2,1首先1入辅助栈,此时栈顶1≠4,继续入栈2此时栈顶...

2019-08-02 10:03:56 365

原创 java实现给定如下的n*n的数字矩阵,每行从左到右是严格递增, 每列的数据也是严格递增。设计一个算法, 给定一个数k 判断出k是否在这个矩阵中。

题目: 给定如下的n*n的数字矩阵,每行从左到右是严格递增, 每列的数据也是严格递增1 2 33 5 64 8 9现在要求设计一个算法, 给定一个数k 判断出k是否在这个矩阵中。描述算法并且给出时间复杂度(不考虑载入矩阵的消耗)思路: 从左下角开始查找,如果k大于此值,则往右继续查找。k小于此值,则往上查找。public static boolean dz(int k,i...

2019-08-02 09:26:39 1201

原创 SQL基础语句

一.DDL语句: 数据定义语言的缩写,对数据库内部对象进行创建、删除、修改等操作。1 创建数据库 create database dbname;use adname(选择数据库)show table(查看数据库下的表)2.删除数据库 drop database dbname;3.创建表 create table emp(name varchar(10),number int(2...

2019-07-31 20:40:58 87

原创 数据结构----哈夫曼树

哈夫曼树: 给定n个权值作为n个叶子结点,构造一颗二叉树,若该树的 带权路径长(WPL) 达到最小,这样的二叉树为最优二叉树,也叫哈夫曼树(Huffman Tree).-----权值较大的节点距离根较近。带权路径长(WPL)计算如下图:哈弗曼树构建步骤例如:将数列{13,7,8,3,29,6,1}转化为一颗哈夫曼树。1.先从小到大进行排序,每一个数据都是一个节点,每个节点可以看成一颗最...

2019-07-27 18:07:02 1185

原创 设计模式--单例模式

1.单例模式(Singleton Pattern): 确保一个类只有一个实例,并提供一个全局访问点来访问这个实例。饿汉式单例实现:class Singleton{ //构造器私有化,外部能new private Singleton() { } //本类内部创建对象实例 private final static Singleton instance=new Singleton...

2019-07-19 19:30:43 83

原创 设计模式----七大原则

1.单一职责原则:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。对类来说,一个类只负责一项职责(仅有一个引起它变化的原因)。如果一个类承担了太多的职责,就可以将该类拆分,使其满足单一职责原则。作用: 降低类的复杂度,实现高内聚、低耦合。提高类的可读性,可维护行。 2.接口隔离原则: 客户端不应该依赖哪些它不需要的接口(一个类对另一个类的依赖应该建立在最小接口上)。...

2019-07-19 10:46:22 105

原创 java链表、数组实现栈、队列

栈和队列: 栈和队列是在程序中被广泛使用的两种重要的线性结构,都是在一个特定范围的储存单元中存储的数据。二者的区别在于:栈先进去的数据只能最后被取出来,即先进后出。队列就像人们买东西,先排队的人先买,即先进先出。链表实现栈构建结点:class Node<E>{ Node<E> next=null; E data; public Node(E data) { ...

2019-07-17 20:09:08 136

原创 虚拟机学习之----虚拟机性能监控与故障处理工具

虚拟机性能监控与故障处理工具4.2JDK的命令工具4.2.1 jsp-----虚拟机进程状况工具jsp(JVM Process Status Tool)列出正在运行的虚拟机进程,显示虚拟机执行主类名称以及这些进程的本地虚拟机唯一ID。使用频率最高的JDK命令行工具。4.2.2 jstat-----虚拟机统计信息监视工具jstat(JVM Statistics MOnitoring To...

2019-03-30 10:22:34 96

原创 MySql错误:java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

1.做登录页面,eclipse上启动服务后,突然报出异常。2.然后在网上搜了各种答案,说应该是用户名错误,但是解决方案都不适合。https://blog.csdn.net/zhoudahuifbi/article/details/79871893这位兄弟应该是写的比较全面的,但是我还是没有解决掉,因为自己初学,有好多没太看明白。3.最后还是各种试验才解决了这个错误-----方法是:在my...

2019-03-20 10:02:03 8663 5

空空如也

空空如也

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

TA关注的人

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