自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2021我的小记录

进入数据库在CMD命令窗口敲入命令 mysql -hlocalhost -uroot -p 后按回车(注意这里的"-h"、"-u"、"-p"不能省略) 进入mysql数据库

2021-07-21 11:01:43 3

原创 Iterator迭代器遍历(List,Set,Map都通用)

Iterator迭代器遍历(List,Set,Map都通用)Iterator<Student> is=l.iterator(); while(is.hasNext()){ Student s=is.next(); System.out.println(s.getName()+"\t"+s.getAge()); }Map更常用的是通过Map.entrySet遍历key和valuepublic static void main(String[] args) {

2021-04-25 09:19:41 25

原创 进来分清楚iteration和batch-size和epoch吧!

不知道你是不是和我一样,还是傻傻分不清iteration、batch-size、epoch,不过,从今天起就分清楚它们吧!iteration:表示1次迭代(也叫 training step),每次迭代更新1次网络结构的参数。batch-size:1次迭代所使用的样本量。epoch: 1个epoch表示过了1遍训练集中的所有样本。注意:在深度学习领域中,常用带mini-batch的随机梯度下降算法(Stochastic Gradient Descent,SGD)训练深层结构,它有一个好处就是并不需

2020-07-29 18:20:46 136 4

原创 软件测试工程师面经

测试阶段1 . 单元测试2 . 集成测试3 . 系统测试4 . 验收测试是“从小到大”、“由内至外”、“循序渐进” 的测试过程,体现了“分而治之”的思想。单元测试的粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符合“设计”。集成测试界于单元测试和系统测试之间,起到“桥梁作用”,一般由测试小组采用白盒加黑盒的方式来测试,既要验证“设计”又要验证“需求”。系统测试的粒度最大,一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合“需求规格说明书”。验收测试与系统测试非常相似,

2021-07-12 15:16:25 39 3

原创 java实现冒泡排序

public class Solution { public static void main(String[] args) { //冒泡排序算法 int[] numbers=new int[]{1,5,8,2,3,9,4}; //需进行length-1次冒泡 for(int i=0;i<numbers.length-1;i++) { for(int j=0;j<numbers.le.

2021-07-10 16:59:05 2

原创 二分法求平方根

二分法求平方根public class Solution1 { public float qart1(float N, float e) { float x = 0; float low = 0; float high = N; while (low < high){ float mid = (low + high)/2; if(mid * mid < N-e){

2021-07-10 15:39:47 4

原创 你了解间隙锁吗

间隙锁(Gap Lock)作用:保证某个间隙内的数据在锁定情况下不会发生任何变化。比如mysql默认隔离级别下的可重复读(RR)。间隙锁(Gap Lock)是Innodb在提交下为了解决幻读问题时引入的锁机制,(下面的所有案例没有特意强调都使用可重复读隔离级别)幻读的问题存在是因为新增或者更新操作,这时如果进行范围查询的时候(加锁查询),会出现不一致的问题,这时使用不同的行锁已经没有办法满足要求,需要对一定范围内的数据进行加锁,间隙锁就是解决这类问题的。在可重复读隔离级别下,数据库是通过行锁和间隙锁共同

2021-07-10 14:01:15 3

原创 以下几种情况将导致索引失效

索引并不是时时都会生效的,比如以下几种情况,将导致索引失效:1.如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因)2.对于多列索引,不是使用的第一部分(第一个),则不会使用索引3.like查询是以%开头4.如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引5.如果mysql估计使用全表扫描要比使用索引快,则不使用索引...

2021-07-10 09:20:30 21

原创 为什么B+树索引比B树的好

为什么B+树索引比B树的好1 . B树的数据指针存储在各层节点中 , B+树的数据都存储在了叶子节点 , B树的数据存储的比较分散 , 在磁盘里进行查找的时候 , 不能利用上局部性原理 , 查询效率是更低的.2 . B+树叶子节点之间还有链表连起来了 , 如果是个范围的查询 , 那么就只需要找到前一个和后一个 ,中间遍历链表就可以了,B树还要不停的去遍历整个树 , 才能进行范围查询 , 也是慢的....

2021-07-09 21:26:18 9

原创 spring框架学习

1.spring框架学习spring核心技术 ioc, aop 。 能实现模块之间,类之间的解耦合。Ioc(Inversion of Control)把对象的创建,赋值,对象之间的关系管理工作都交给代码之外的容器实现。note: 容器:是一个服务器软件,一个框架(spring)为什么要使用ioc: 目的就算减少对代码的改动,也能实现不容的功能(实现解耦合)。2.mybatis访问数据库,对表中的数据执行增删改查。...

2021-07-08 14:09:17 12

原创 Java中的异或运算

1 . Java中的异或运算相同为0 不同为1

2021-07-07 17:11:06 6

原创 java中左移<<右移>>>

java中左移<<右移>>>public static strictfp void main(String[] args) { int num=5; System.out.println(Integer.toBinaryString(num)); num >>>= 1; System.out.println(Integer.toBinaryString(num)); num &g

2021-06-22 21:39:33 5

原创 剑指 Offer 56 - II. 数组中数字出现的次数 II

剑指 Offer 56 - II. 数组中数字出现的次数 II在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。最low写法:class Solution { public int singleNumber(int[] nums) { HashMap<Integer,Integer> map = new HashMap<>(); for(int i=0;i<nums.length;i

2021-06-22 21:02:34 1

原创 Java 线程的 6 种状态

Java 线程的 6 种状态1 . new:初始化态,就是new之后2 . runnable:运行态,就是调用start()之后(1)Ready:准备态,还没有获得CPU的控制权。(2)Running:执行态,获得了CPU的控制权、3 . blocked:阻塞态,因为访问的资源被加锁了4 . watting:等待态5 . timed_waiting:超时等待6 . terminated:结束态线程状态图...

2021-05-22 12:01:50 10

原创 HashSet(使用方法详解)

HashSet(使用方法详解)1 . HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。2 . HashSet 允许有 null 值。3 . HashSet 是无序的,即不会记录插入的顺序。4 . HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。5 . HashSet 实现了 Set 接口。// 引入 HashSet 类 import java.ut

2021-05-22 08:45:43 35

原创 Java中的private和final作用

目的是为了防止类中的数据成员,在类的定义之外被修改。也就说,private类型的数据成员只能在定义的时候修改,其余任何地方都不可以,该类的对象也不可以。作用1、private作为一种权限修饰符可以修饰类、属性和方法;2、用private修饰的类、属性、方法,只能自己使用,别的类是不能访问的,也就是说对于别的类来说是隐藏不可见的,private一般不修饰类,但是可以修饰内部类;...

2021-05-21 20:31:48 43

原创 this关键字

一、this关键字主要有三个应用:(1)this调用本类中的属性,也就是类中的成员变量;(2)this调用本类中的其他方法;(3)this调用本类中的其他构造方法,调用时要放在构造方法的首行。应用一:引用成员变量Public Class Student { String name; //定义一个成员变量name private void SetName(String name) { //定义一个参数(局部变量)name this.name=name; //将局部变量的值传递给成员变量

2021-05-20 10:25:17 5

原创 关键字final 分别修饰类,方法,变量,各起什么作用?

关键字final 分别修饰类,方法,变量,各起什么作用?1 . final修饰类是不能被继承2 . fianl修饰方法不能在子类中被覆盖3 . final修饰变量,称为常量,初始化以后不能改变值。4 . final修饰的对象引用不可变,内容可变。...

2021-05-19 16:38:28 38

原创 BIO和NIO的区别?

BIO和NIO的区别?BIO:同步阻塞的IO模型,数据的读取和写入必须阻塞在一个线程里面,去等待完成;NIO:同步非阻塞的IO模型(JDK1.4引入了NIO框架,提供了Channel,Selector,Buffer等这些抽象类)1 . 线程模型区别BIO:基于线程驱动的,N:N(一个服务端线程对应一个客户端线程)NIO:基于事件驱动的,1:N(一个服务端线程对应N个客户端线程(连接、读、写、断开))...

2021-05-18 21:25:49 10

原创 关于二叉树的计算题

1 . 高度为h的满二叉树,有(2^h)-1个结点;2 . 具有n个结点的完全二叉树的高度为(logn)向下取整+1;3 . 第k层至多有2^(k-1)个结点。

2021-05-18 11:22:13 10

原创 Http和https的区别?

Http和https的区别?答:http是超文本传输协议的缩写,用于从网站服务器传输数据到上网者的本地浏览器的协议。超文本是啥?就是除了文本还能传输声音、图片、视频等等。Http它是明文传输的,传输过程中被截获直接就能读取信息,不安全。在http上加上SSL(安全套接字协议,它是靠证书来验证服务端的身份,并在本地机和服务端之间架起一条通道) 就是https。但是https主要有以下方面是成本和问题:SSL证书是要收费的,而且功能越强的证书,越贵SSL会延长页面的加载时间,有统计延长大概50%

2021-05-18 08:15:41 6

原创 层次遍历Java代码

层次遍历public class Solution { public int[] levelPrint(TreeNode root){ if(root == null) { return new int[0]; } LinkedList<TreeNode> queue = new LinkedList<TreeNode>(); LinkedList<Integer&

2021-05-17 20:39:56 1

原创 剑指offer39: 数组中出现次数超过一半的数字

数组中出现次数超过一半的数字class Solution { public int majorityElement(int[] nums){ // Map<Integer, Integer> counts = new HashMap<>(); // int length = nums.length; // for(int i = 0; i < length; i++){ // int count

2021-05-17 11:47:30 4

原创 面试官:LongAdder了解吗?

1 . 什么是JUC?JUC就是java.util.concurrent包,这个包俗称JUC,里面都是解决并发问题的一些东西,它的基础 AQS。JUC中的4大常用并发工具类:CountDownLatchCyclicBarrierSemaphoreExChanger2. 常用的JUC下的原子操作类更新基本类型类:AtomicBoolean,AtomicInteger,AtomicLong更新数组类:AtomicIntegerArray,AtomicLongArray,AtomicRefere

2021-05-16 20:08:59 24 1

转载 并发之CountDownLatch

1 . CountDownLatch的工作原理CountDownLatch在多线程并发编程中充当一个计时器的功能,并且维护一个count的变量,并且其操作都是原子操作,该类主要通过countDown()和await()两个方法实现功能的,首先通过建立CountDownLatch对象,并且传入参数即为count初始值。如果一个线程调用了await()方法,那么这个线程便进入阻塞状态,并进入阻塞队列。如果一个线程调用了countDown()方法,则会使count-1;当count的值为0时,这时候阻塞队列中调

2021-05-16 16:37:15 9

原创 回表、覆盖索引、索引下推?

1.回表,简单说就是mysql内部需要经过两次查询 第一次先索引扫描,然后再通过主键去取索引中未能提供的数据。 create `table` tb_name(`id` int(11) not null auto_increment , `k` int(11) default...

2021-05-15 17:43:24 45 2

原创 面试官:说一说垃圾回收器?

CMS和G1详解首先1.CMS是年老代GC2.G1是包括年轻代和年老代的GC3.二者在某些时候都需要FullGC(serial old GC)的辅助1 . CMS收集器CMS收集器是一种以获取最短回收停顿时间为目标的收集器。这是因为CMS收集器工作时,GC工作线程与用户线程可以并发执行,以此来达到降低收集停顿时间的目的。CMS收集器仅作用于老年代的收集,是基于标记-清除算法的,它的运作过程分为4个步骤:1 . 初始标记(CMS initial mark)2 . 并发标记(CMS concu

2021-05-15 08:31:05 22

原创 任务与线程和进程的关系?

任务(task)任务是最抽象的,是一个一般性的术语,指由软件完成的一个活动。**一个任务既可以是一个进程,也可以是一个线程。**简而言之,它指的是一系列共同达到某一目的的操作。例如,读取数据并将数据放入内存中。这个任务可以作为一个进程来实现,也可以作为一个线程(或作为一个中断任务)来实现。...

2021-05-14 15:40:53 17

原创 死锁产生的4个必要条件?

死锁产生的4个必要条件?1 . 产生死锁的必要条件:(1)互斥条件:进程要求对所分配的资源进行排它性控制,即在一段时间内某资源仅为一进程所占用。(2)请求和保持条件:当进程因请求资源而阻塞时,对已获得的资源保持不放。(3)不剥夺条件:进程已获得的资源在未使用完之前,不能剥夺,只能在使用完时由自己释放。(4)环路等待条件:在发生死锁时,必然存在一个进程–资源的环形链。解决死锁的基本方法2 . 预防死锁:(1)资源一次性分配:一次性分配所有资源,这样就不会再有请求了:(破坏请求条件)(2)只要

2021-05-11 11:16:08 41

原创 MySQL中可重复读是怎么实现的?

MySQL中可重复读是怎么实现的?答:通过一致性视图(快照)和多版本并发控制(MVCC)实现的。MVCC是一种乐观锁的实现方式,而且是一种很常见的乐观锁实现方式。所谓多版本,就是一行记录在数据库中存储了多个版本,每个版本以事务ID作为版本号。InnoDB 里面每个事务有一个唯一的事务 ID,是在事务开始的时候向InnoDB的事务系统申请的,并且按照申请顺序严格递增的。假如一行记录被多个事务更新,那么,就会产生多个版本的记录。链接: link....

2021-05-10 10:01:52 17

原创 数据库查询优化(面试自用)

说说常见的数据库查询优化方法1 . 避免全表扫描2 . 避免索引失效3 . 避免查询不必要的字段4 . 避免频繁的创建和删除临时表5 . 使用Like '%*** ’ 会导致索引失效6 . 使用Or 来代替<> 和 !=7 . 使用exists 代替in8 . 不要对where 后的字段做函数处理9 . 尽量减少排序10 . 使用Union ALL 代替Union11 . 正确的索引建立12 . 表关联时取别名13 . 能用Between and 的就不要用In14

2021-05-08 19:30:51 7

原创 PS命令

ps命令以下是 ps 的最简单形式:1 . $ ps• PID 是进程的标识号。• TTY 是进程所属的终端控制台。• TIME 列是进程所使用的总的 CPU 时间。• CMD 列列出正在执行的命令行。使用带有 -ef 选项的 ps,返回系统中所有用户的所有进程的完整列表。一般将此 ps 命令的结果传送到 grep 中,则该结果更易于查看。例如:2 . $ ps -ef | grep zjhUID PID PPID C STIME TTY TIME CMD

2021-05-05 10:44:27 5

原创 堆排序怎么实现的 怎么插入新元素 时间复杂度

堆排序怎么实现的 怎么插入新元素 时间复杂度

2021-04-29 15:12:51 184 2

转载 volatile关键字及其作用

volatile关键字作用1:保证内存可见性可见性是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的。也就是一个线程修改的结果,另一个线程马上就能看到。实现原理当对非volatile变量进行读写的时候,每个线程先从主内存拷贝变量到CPU缓存中,如果计算机有多个CPU,每个线程可能在不同的CPU上被处理,这意味着每个线程可以拷贝到不同的CPU cache中。volatile变量不会被缓存在寄存器或者对其他处理器不可见的地方,保证了每次读写变量都从主内存中读,跳过CPU cache这一步。当

2021-04-28 16:38:23 9

原创 设计模式专题

1.单例模式所谓单例模式,就是保证类在内存中只有一个对象两种实现方式1.1 利用静态内部类实现单例模式(线程安全,调用效率高,可以延时加载)public class Singleton { //延迟加载,线程安全 private Singleton(){ //单例模式的特点,构造必须私有 } private static class T{ // 静态内部类在使用的时候才加载(且最先加载),且只加载一次 private static Singleton t =

2021-04-28 15:37:49 34

原创 static的用法

static是java中非常重要的一个关键字,而且它的用法也很丰富1 . 用来修饰成员变量,将其变为类的成员,从而实现所有对象对于该成员的共享;2 . 用来修饰成员方法,将其变为类方法,可以直接使用“类名.方法名”的方式调用,常用于工具类;3 . 静态内部类,在使用的时候才加载,且只加载一次未完待学…...

2021-04-28 14:49:18 14

原创 MySQL存储引擎

一、存储引擎 MySQL常见的两种存储引擎:MyISAM与InnoDB 二、字符集及校对规则 字符集指的是一种从二进制编码到某类字符符号的映射。校对规则则是指某种字符集下的排序规则。Mysql中每一种字符集都会对应一系列的校对规则。 Mysql采用的是类似继承的方式指定字符集的默认值,每个数据库以及每张数据表都有自己的默认值,他们逐层继承。比如:某个库中所有表的默认字符集将是该数据库所指定...

2021-04-28 11:43:46 12

原创 啊啊啊,我不能害怕写SQL语句

啊啊啊,我不能害怕写SQL语句1 . 写sql语句,一个表有一个字段age,写sql查出age<3,先根据age字段分组,求id最大的那个数据。select max(id) from yue where age<3 group by age;2 . 查询出播放量最高的视频mysql> select m_id from movie group by m_id order by count(m_id) desc limit 1;2 . 1 查询出播放量前三的视频mysq

2021-04-28 10:49:19 14

原创 锁升级

对象的结构Mark word中的信息上图中Mark word中存储的最重要的信息是——锁标志位

2021-04-27 17:02:08 24

原创 Linux文件权限 chmod

Linux文件权限chmodtouch djj.txt //创建文件chmod -w djj.txt //去掉 djj.txt文件的写权限chmod -r djj.txt //去掉 djj.txt文件的读权限chmod g=rwx djj.txt //给用户组设置rwx的权限b站讲解视频:https://www.bilibili.com/video/BV1Ut41157CP?from=search&seid=2682978817959322021...

2021-04-27 15:34:20 9

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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