- 博客(37)
- 收藏
- 关注
转载 操作系统之进程/线程通信
https://blog.csdn.net/weixin_42579072/article/details/103804610
2020-12-14 15:37:32 232
原创 Mysql事务和锁
内容摘抄整理自:微信公众号 CyC2018事务ACIDD持久性,使用重做日志保证持久性ACID怎么理解 I一致性是目的,是指数据库从一个正确的状态转移到另一个正确的状态。A原子性和D隔离性,是I的手段,只有保证原子性和隔离性,才能保证一致性,当然隔离性又分为好几种不同的隔离级别。而持久性是为了应对mysql崩溃的情况,即使数据库崩溃数据库的数据结果也不会丢失,使用重做日志保证持久性。MYSQL默认采用自动提交模式,也就是说如果不使用start transaction语句,那么每个mysql查
2020-08-02 17:36:27 594
原创 Java内存泄漏OMM
JVM 发生 OOM 的 8 种原因、及解决办法高手总结的9种 OOM 常见原因及解决方案堆溢出这种场景最为常见,报错信息:java.lang.OutOfMemoryError: Java heap space原因1.代码中可能存在大对象分配(如大数组)2.可能存在内存泄漏,多次GC后,仍然无法找到一块足够大的内存容纳当前对象解决方法1.对于大对象分配,条件允许的话,可以扩大堆内存的分配空间,是否可以对大对象进行分割2.对于内存泄漏,可以使用(jmap和jconsole监测),检查代码
2020-08-01 23:34:30 1534
原创 Java中的线程池
线程池的好处降低资源消耗,避免线程频繁创建和销毁,避免无线创建线程,统一管理线程,通过线程池可以设置核心线程池数量,统一分配线程等,达到线程复用的目的。可以进行线程监控,提高响应速度,减少了创建线程和销毁线程的时间,响应速度就自然提高了线程池处理流程如果核心线程池和队列已满,创建线程执行任务,是需要获取全局锁的,所以上述步骤的总体思路是为了尽可能避免获取全局锁线程池在创建线程时,会将线程封装成工作线程Worker,Worker在执行完任务后,会循环获取工作队列里的任务来执行。预热
2020-07-15 14:34:53 159
原创 7.12每周一面
线程和进程的区别①给出概念,②给出关系 ③给出从操作系统层面和内存方面给出区别进程是程序的一次执行过程。一个进程可以有多个线程。线程又叫做轻量级进程。进程是操作系统资源分配的基本单位,而线程是CPU调度和分派的基本单位,也就是任务调度和执行的基本单位(根本区别)一般,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程输入www.baidu.com 后 会有哪些操作发生详细..
2020-07-12 15:12:33 161
原创 数据库初级安全——记一次数据库被黑的记录
昨天上个人网站,突然发现后端的服务挂了,发现后端报错是数据库连接错误,于是登录上数据库一看,输入原来的密码,显示错误。哦嚯 脑子灵光一闪 mysql -uroot 成功了??? 我密码呢??进入数据库 show databases,数据库还在,还好还好。进去数据库,show talbes???所有表格被删的只剩warning warining里是一些勒索信息行吧 默认端口号,用root登录,root密码是abc123,不黑我黑谁总结几点定期备份提高root账号密码强度MySQL不允许任
2020-07-06 21:30:56 196
原创 设计模式看这一篇就够了 超详细总结
创建型文章很多部分内容来自此,以下为个人学习笔记,侵删ps:图中代码实例部分 一个文件不能有多个public类,为了阅读方便都放入了同一个代码框中单例模式确保一个类只有一个实例,并提供该实例的全局访问点私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返回唯一的私有静态变量懒汉式-线程不安全以下实现中,私有静态变量 uniqueInstance 被延迟实例化,这样做的好处是,如果没有用到该类,那么就不会实例化 uniqueInstance,从而节约资源。public c
2020-07-02 18:08:50 741
原创 Redis进阶学习
注:大部分内容为学习笔记,出处在此为什么使用Redisredis和memcached的区别1.mc可以缓存图片和视频,rd除了k/v支持更多的数据结构、2.rd可以使用虚拟内存,rd可持久化和aof容灾恢复,rd通过主从支持数据备份3.rd可以做消息队列。为什么高并发下有时单线程的 redis 比多线程的mc 多线程模型引入了缓存一致性和锁,加锁带来了性能损耗。Redis做消息队列使用list结构作为队列,rpush生产消息,lpop消费消息。当lpop没有消息的时候,要适当sleep一会
2020-06-28 17:51:51 357
原创 redis学习笔记
简介Redis是速度非常快的非关系型(NOSQL)数据库,可基于内存 亦可持久化的日志型、Key-Value数据库,数据类型String 类型> set hello worldOK> get hello"world"> del hello(integer) 1> get hello(nil)mset 和mget可以设置多个String值常用命令incr age decr ageincrby age 2decrby age 2incrbyfloa
2020-06-25 09:52:34 147
原创 MySql基础
修改表添加列alter table mytable add col char(20);删除列alter table mytabledrop colum col;删除表drop table mytable;插入普通插入insert into mytable(col1,col2)values(val1,val2);插入检索出来的数据insert into mytable(col1,col2)insert INTO table(col) select col
2020-06-23 22:05:40 145
原创 JVM垃圾收集算法和垃圾收集器
慕课专栏手记 https://www.imooc.com/read/67/article/1500JVM 中的 GC 是什么?为什么要有 GC?JVM 中的 GC(Garbage Collection)是垃圾收集的意思,它是将 java 的无用的对象进行清理,释放内存,以免发生内存泄露。GC 是 Java 语言的一大特征,因为内存处理是容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃。Java 语言认为这么重要的地方不应该交给程序员来处理,所以提供 GC 用于自动监测对象是否
2020-06-20 18:04:48 184
原创 Java内存结构和类加载机制
慕课Java专栏学习手记:https://www.imooc.com/read/67JVM对Java类的使用总体上可以分为两部分:一是把静态的class文件加载到JVM内存,二是在JVM内存中进行java类的生命周期管理。二者一静一动,分别对应Java内存结构与类加载机制、JVM与垃圾回收。JVM内存结构JVM内存模型主要分为五个区:方法区(Method Area),虚拟机栈(VM Stack),本地方法栈(Native method stack),堆(Heap),程序计数器(Program Co
2020-06-19 23:20:43 291 1
原创 Java基础知识总结
说明:以下内容基于自己的理解及方便记忆来写,有的地方与网上参考答案不同,仅供参考。知识点比较散,持续补充中Java语言的特点简单性,相对于C++来说,没有指针,虚函数等概念面向对象,类,接口,抽象类等概念。只支持单继承,但可以实现多个接口。跨平台,基于虚拟机JVM,编译的文件直接在虚拟机上解释执行高性能,支持高并发,分布式,多线程等,Java内部对锁进行了很多优化,动态性,通过反射实现,允许程序动态地装入运行过程中所需的类安全性,JVM自带的垃圾收集,减少内存的泄露, Exception异常
2020-06-16 14:12:47 113
原创 Java实现递归排序(重新复习一遍)
代码写的最规范的一次之一 /捂脸package sort;/** * @author yxh * @date 2020.6.11 */public class MergeSort { /** * 递归地进行拆分数组并合并,如[1,2,3,4] 第一次拆分为[1,2],[3,4], 第二拆分为[1],[2] [3],[4] 然后合并 * * @param a 待排序的数组 * @param beginIndex
2020-06-11 00:34:38 419
原创 vivo笔试真题编程题
https://www.nowcoder.com/questionTerminal/f9b86bcd95a643138f9593966a5495b8现给定任意正整数 n,请寻找并输出最小的正整数 m(m>9),使得 m 的各位(个位、十位、百位 … …)之乘积等于n,若不存在则输出 -1。示例1输入36输出49示例2输入100输出455解题思路,如果存在这样的整数 那么一定是每一位都是[2-9],同时是一种贪心的思想,数值越大的一定放在越小位public class
2020-05-27 13:11:41 1235
原创 Java中抽象类和接口
相同点①都可以拥有抽象方法②都不能被实例化标题①类是单继承,接口是多实现②接口只能定义public final变量③接口只能实现static方法④抽象类除了抽象方法和不能被实例化,与普通的类没有差别。⑤接口一般用作功能抽象,抽象类一般是类别抽象...
2020-05-26 16:52:08 126
原创 逻辑覆盖:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖
记录一次作业,有关白盒测试的知识点。详细讲解可看这篇博文https://www.cnblogs.com/virus1102/p/4953099.html用逻辑覆盖法为流程图设计测试用例为以下流程图所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖。语句覆盖:每条语句至少执行一次,即每个可执行语句都执行一次。判定覆盖:每个判定的每个分支至少执行一次。即图中的条件判定必须覆盖Y/N的情况。条件覆盖:每个判定的每个条件应取到各种可能
2020-05-24 12:04:46 21012 1
原创 Leetcode字符串相乘和相加
43. 字符串相乘作个笔记class Solution { /** * 计算形式 * num1 * x num2 * ------ * result */ public String multiply(String num1, String num2) { if (num1.equals("0") || num2.equals("0")) { return "0"; }
2020-05-22 20:10:43 235
原创 计算机网络常见面试知识点整合
(写此文是为了自己参考加深自我印象,很多是用自己的话总结的,有错误感谢指出!仅供参考)OSI模型有哪几层,并分别说说每层的作用应用层主要是在应用程序之间进行数据传输,如Http协议 DNS协议等表示层主要用于数据加密压缩等功能会话层主要用于会话的建立管理等工作运输层为进程提供数据传输服务,如TCP UDP协议。网络层为主机提供数据传输服务,网络层把运输层的数据封装为分组进行传输数据链路层在链路之间提供数据传输服务,主机之间存在很多链路,数据链路层把网络层传输下来的分组封装成帧。
2020-05-22 12:38:09 1113
原创 Leetcode多线程题目汇总
1114. 按序打印多种解法,都是多线程常用工具volite:class Foo { private volatile int flag=-1;// private AtomicInteger firstJobDone = new AtomicInteger(0); public Foo() {} public void first(Runnable printFirst) throws InterruptedException { // pr
2020-05-11 17:20:11 505
原创 什么是死锁,如何避免死锁?Java死锁详解
什么是死锁死锁是指多个进程因竞争资源而引起的一种僵局,如果没有外力作用,所有进程都不会向前推进。举例:假如有线程Thread1和Thread2,两个都要访问共享资源AB,Thread1和Thread2一个先访问A再访问B,另一个先访问B再访问A。但在他们线程未执行完时,都不会释放AB资源,那么就形成了一种僵局,Thread1在等待Thead2施放B资源,Thread2在等待Thread1释放A资源,两个进程就形成了一种僵局,下面以Java代码实现为例说明:public class DeadThrea
2020-05-11 14:26:55 868
原创 Java的fail-fast机制是什么?以ArrayList为例
fail-fast机制是java集合中的一种机制,当迭代集合过程中,集合的结构发生了改变(增删改元素),就可能会发生错误。首先我们看两个例子public class FailFastTest { public static void main(String[] args) { ArrayList a=new ArrayList(); a.add(1);...
2020-05-08 11:29:21 221
原创 Leetcode树题目集合
二叉树的最大深度class Solution { public int maxDepth(TreeNode root) { if(root==null) return 0; int left=maxDepth(root.left); int right=maxDepth(root.right); ret...
2020-04-29 17:28:15 150
原创 Leetcode链表题目集合
160.Intersection of Two Linked Lists注意,链表结点相同意味着他们的值相同,下一个结点也相同方法1:暴力法方法2:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode...
2020-04-29 15:00:50 275
原创 java异常
处理错误原则尽量使程序返回一种安全状态,并能够让用户执行一些其他命令允许用户保存所有的操作结果,并以妥善的方式终止程序异常分类①Throwable时所有异常的基类.②Eroor类层次结构描述了java运行时系统的内部错误和资源耗尽错误。应用程序不应该抛出这种类型的对象,如果出现这种错误,除了通告给用户,尽量安全终止程序外,再无能为力了。③强制性异常(CheckedExceptio...
2020-03-12 19:14:53 118
原创 递归和栈方法实现二叉树前后中序遍历及Morris遍历方法(java)
递归实现优点,简单,本质上也是用栈实现。树结构定义:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } ...
2020-02-21 13:37:48 171
原创 Intellij IDEA Debug功能
①step over (如果有进入函数会执行完返回)②step into 单步进入(只进入,自定义方法不会进入jdk方法)③force step into (进入任何方法)④step outstepout跳出方法,返回到该方法被调用处的下一行语句。(该方法已执行完毕)⑤drop frame 丢弃帧,即返回当前方法调用处,有点类似回溯的意思⑥run to cursor 跳转到那...
2020-02-05 11:54:35 121
原创 java实现堆排序
具体概念讲解看这篇文章:https://blog.csdn.net/moakun/article/details/82919797import java.util.Arrays;public class HeapSort { void Sift(int a[],int parentIndex,int length) { int temp=a[parentI...
2019-11-24 11:20:28 265 3
原创 java实现归并排序
public class MergeSort { public void MergeSort(int a[],int left,int right){ if(left>=right) //递归出口 return; int mid=(left+righ...
2019-11-24 11:11:16 71
原创 java实现简单选择排序
public class SelectSort { public SelectSort(int a[]) //简单插入排序 本质上就是两层循环的遍历 { /*过程很简单,就是每一遍遍历都要找出一个剩下的最小,比如第一次遍历找最小的 放在第一位 第二次遍历就找第二小的,依次类推 * */ ...
2019-11-20 23:09:23 107
原创 java实现折半直接插入排序
public class BinaryInsertionSort { public BinaryInsertionSort(int a[],int length) { int temp=0;//哨兵 for(int i=1;i<length;i++) //每个元素依次插入排序 { ...
2019-11-17 15:33:52 152
原创 java实现希尔排序
public class ShellSort { public ShellSort(int a[],int length) { for(int d=length/2;d>=1;d=d/2) { for(int i=d+1;i<length;i++) { i...
2019-11-17 15:33:01 92
原创 java实现直接插入排序
public class InsertSort { public InsertSort(int a[],int length) { int temp=0;//哨兵 for(int i=1;i<length;i++) { int j=0; temp=a[i]; ...
2019-11-14 21:24:00 79
原创 java实现冒泡排序
public class BubbleSort { public BubbleSort(int a[],int length) { boolean flag=true; int n=length; while(flag) { flag=false; //如果没有交...
2019-11-14 13:45:09 50
原创 java实现快速排序
public class Sort { public static int OneSort(int a[], int begin, int end) { //一次排序过程 int i = begin; int j = end; while (i < j) { while(a[i]<=...
2019-11-14 13:09:39 85
原创 通俗易懂,java对象作参数是值传递还是引用传递?
回答这个问题之前,我们先来看一个实例,这个实例里输出的是什么呢public class Test { public static void main(String[] args) { ClassA A= new ClassA(); System.out.println(A.a); change(A); System.ou...
2019-11-14 12:36:28 453 2
原创 C++算法:三种方法求最大公约数和最小公倍数
三种方法求最大公约数和最小公倍数标题首先明确最大公约数和最小公倍数的关系,设两个数为a,b;最大公约数为c,最大公倍数为d;则ab=cd;怎么得到的可以通过数学算式证明。分别用暴力搜索法,辗转相除法,更相减损法求最大公约数,求出最小公约数就求出了最小公倍数。#include<iostream>using namespace std;int main(){ //变量a,b...
2019-02-28 18:57:01 3681 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人