自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java笔记

Java基础

2022-08-02 23:15:14 80 1

原创 狂神说springboot

2022-6-301.实体类定义规则1.PO(persistent object) 持久对象:对应数据库中的entity,可将PO视为对应数据库中的一条记录;2.VO(view object) 表现层对象:对应页面展示的数据对象;可以和表对应,也可以不对应,这根据业务的需要;3.DTO(TO):Data Tranfer Object 数据传输对象:比如一张表有100个字段,那么对应的PO就有100个属性,但view层只需要显示10个字段,没有必要将整个PO对象传递到client,这时我们就可以用只

2022-05-30 22:09:31 85

原创 SQL总结

1.where语句在group by语句之前;SQL会在分组之前计算where语句2.where语句在group by语句之后;SQL会在分组之后计算having语句。

2021-11-21 16:25:13 1371 1

原创 Java反射

Java反射什么是Java的反射机制?java反射就是在运行状态中,对于任意一个类都知道这个类的所有属性和方法;对于任何一个对象都能调用它的属性和方法,这种动态调用对象的方法、获取类的信息的功能称为Java语言的反射机制。优点:运行时期动态加载类,和类的判断,提高了代码的灵活性。缺点:反射相当于一系列解释的操作,通知jvm要做的事情,性能比直接Java代码慢。如何实现反射?package com.reflection;public class GetClass { public s

2021-11-18 18:17:42 60

原创 volatile

volatilevolatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性指的是当一个线程修改一个共享变量时,另外一个线程能够读到这个修改的值。由于它不会引起线程上下文的切换和调度,因此恰当地使用volatile会比synchronized的使用和执行成本更低。volatile的定义Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致性地更新,线程应该确保通过排他锁单独获得这个变量。volatile如何保证可见性?有volatile修饰

2021-11-12 21:51:37 381

原创 给定一个整数,从这个整数当中删除k个数,使得得到的新整数最大(最小)

1.给定一串数字,删除k个数,使得得到的结果最大思路:例如"93476251"这个整数,要使得得到的整数最大,也就是使得高位的数字尽可能地大,因此从头开始遍历,对于每一小段降序的数字,删除其中最小的一个数字。即每一小段降序的数字分别为“93”,“4”,“762”,…。当删除到第k个时,停止。public class TheMaxNum { public static void main(String[] args) {// Scanner sc = new Scanner(Sy

2021-11-10 22:12:37 676

原创 drop、truncate和delete的区别

drop、truncate和delete的区别1.SQL语法区别drop table 表名称truncate table 表名称delete from 表名称 where 列名称 = 值2.具体区别1.drop:删除表。删除表的内容和定义,释放空间。指将整个表彻底地去掉。2.truncate:将表中数据清空。删除内容、释放空间,但是不删除定义(保留表的数据结构)。3.delete:删除表中的数据。用于删除表中的行,执行删除过程每次从表中删除一行,并且将这行的删除操作作为事务记录在

2021-11-08 19:55:14 502

原创 AOP-面向切面编程

AOP-面向切面编程面向切面编程,能够让我们在不影响原有功能的前提下,横向地扩展功能。具体来说,当我们需要在许多类中添加相同逻辑的代码(比如打日志)的时候,一般我们会在每个类中写入这些代码,当需要对这些相同逻辑的代码进行修改时,又需要找到这些类,然后进行修改。当使用了AOP后,只需要将重复的代码写一次,需要时候调用就可以了。AOP五种通知类型前置通知:在目标方法执行之前执行的通知。环绕通知:在目标方法执行之前和之后都可以执行的通知。后置通知:在目标方法执行之后执行的通知。异常通知:在目标方法抛

2021-11-08 12:19:49 65

原创 Java关键字总结

Java关键字总结transient1.将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会被序列化。Java中的serialization提供了一个存储对象状态的机制,即将对象的状态存储到硬盘上,等需要的时候可以将其读取出来使用。比如银行卡号是不希望在网络上传输的,transient能够让该字段的生命周期仅仅存在调用者的内存中,而不会写在磁盘里。...

2021-11-03 15:26:37 50

原创 面试总结和提升

相信没有到不了的远方2021.11.03联通没问什么问题,只让简单介绍自己,和简单几个问题:项目使用技术以及使用软件;期望薪资;个人爱好。总结:回答问题应该分点回答,组织好语言;自我介绍调整;项目介绍 难点以及如何解决。此类问题想好。...

2021-11-03 15:19:46 140

原创 刷题

1.剑指offer-链表-从尾到头打印链表利用ArrayList的add(index,value)方法,指定index位置添加value值。在遍历listNode的同时将每个结点的值都插入到index为0的位置,最后返回的ArrayList的值便是链表逆序值。时间复杂度和空间复杂度均为O(n)。也可以使用栈来存储遍历到的每个结点的值,但是这样会有额外的空间消耗。import java.util.ArrayList;public class Solution { public ArrayLis

2021-10-31 18:16:40 170

原创 数据结构---线性表

一、线性表1.1顺序表顺序表在计算机内存中以数组的形式保存线性表,线性表的顺序存储是指用一组地址连续的存储单元,依次存储线性表中的各个元素,使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系。ArrayList1.底层使用数组来实现1.2链表单链表:package linear;import java.util.Iterator;public class LinkList<T> implem

2021-10-29 22:18:52 99

原创 多线程面试题总结

1.如何查看线程死锁1.通过jstack命令查看,jstack命令主要用于调试java程序运行过程中的线程堆栈问题,可以用于检测死锁。2.当两个线程去操作数据库时,数据库发生了死锁,这时可以查询数据库的死锁情况。//1.查询是否锁表show OPEN TABLES where In_use > 0;//2.查询进程show processlist;//3.查看正在锁的事务select * from INFOMATION_SCHEMA.INNODB_LOCKS;//4.查看等待锁的

2021-10-29 17:20:29 80

原创 各大排序算法稳定性

各大排序算法稳定性分析冒泡排序只有当arr[j] > arr[j+1]时,才会交换元素的位置,而相等的时候并不交换位置,因此冒泡排序是一种稳定的排序算法。选择排序选择排序是给每个位置选择当前元素最小的,例如:[5(1),8,5(2),2,9],第一遍选择到的最小元素为2,所以5(1)会和2进行交换位置,此时5(1)到了5(2)后面,破坏了稳定性。因此选择排序是一种不稳定的排序算法。插入排序比较是从有序序列的末尾开始,也就是想要插入的元素和已经有序的最大者开始相比,如果比它大则直接插入到其后

2021-10-28 16:02:37 151

原创 归并排序和快速排序Java

递归定义方法时,在方法内部调用方法本身,称为递归。递归能够将一个大型复杂的问题,转换为一个与原问题相似的,规模较小的问题来求解。注意:在递归中,不能无限制地调用自己,必须要有边界条件,能够让递归结束,因为每一次递归调用都会在栈内存开辟新的空间,重新执行方法,如果递归的层级太深,很容易造成栈内存溢出。归并排序...

2021-10-28 15:01:51 119

原创 希尔排序Java

希尔排序原理1.选定一个增长量h,按照增长量h作为数据分组的依据,对数据进行分组;2.对分好组的每一组数据完成插入排序;3.减小增长量,最小减为1,重复第二步操作。(减为1时,整个数组被分为一组)增长量h如何确定int h=1while(h < 数组的长度/2) { h=2h+1;}循环结束后就可以确定h的最大值h的减小规则为: h=h/2代码package sort;import java.util.Arrays;public class ShellSor

2021-10-27 21:06:17 109

原创 插入排序Java实现

插入排序原理1.将所有的元素分为两组,已经排序的和未排序的;2.依次遍历未排序中的每个元素,将其向已经排序的组中进行插入;3.倒叙遍历已经排序的元素,依次和待插入的元素进行比较,直到找到一个元素小于等于待插入的元素,将这个待插入的元素放到这个位置,其他的元素向后移动一位。package sort;import java.util.Arrays;public class InsertSort { public static void main(String[] args) {

2021-10-27 16:59:00 60

原创 选择排序Java

选择排序算法原理1.每一次遍历的过程中,都假定第一个索引处的元素是最小值,和其他索引处的值依次进行比较,如果当前索引处的值大于其他的某个索引处的值,就假定其他某个索引处的值为最小值,通过遍历一趟,就可找出待排序部分中最小值所在的索引。2.交换第一个索引处的值和最小值所在的索引处的值。package sort;import java.util.Arrays;public class SelectionSort { public static void main(String[] arg

2021-10-27 16:37:56 81

原创 冒泡排序Java

1.package sort;public class BubbleSort { public static void main(String[] args) { int[] arr = new int[]{3,5,23,54}; BubbleSort(arr); for (int i = 0;i < arr.length;i++) { System.out.println(arr[i]); }

2021-10-26 23:11:33 92

原创 数据结构 笔记

数据结构:数据结构:组合和存储数据的。分为逻辑结构和物理结构两大类。逻辑结构:1.集合结构:集合结构中数据元素除了属于同一个集合外,它们之间没有任何其它的关系。2.线性结构:数据元素之间存在一对一的关系。3.树形结构:一对多。...

2021-10-26 23:07:45 78

原创 线程池及参数

线程池及参数线程池定义提前创建好若干个可执行的线程放到一个线程池中,需要的时候从线程池中获取线程,不需要自行创建,使用完毕后不销毁线程并将这个线程放回到线程池中。可以避免频繁创建销毁、实现重复利用。类似于生活中的公共交通工具。提高响应速度(减少创建新线程的时间)降低资源消耗(重复利用线程池中线程,不需要每次都创建)便于线程管理(参数)Executors工具类–创建线程池的静态工厂方法newSingleThreadExecutor:创建一个单线程的线程池。这个线程池中只有一个线程在工

2021-10-13 18:13:16 73

原创 创建线程的方式

创建线程的方式1.继承Thread类1.创建一个继承于Thread类的子类,2.重写Thread类的run()方法。这个run()方法的方法体代表了线程需要完成的任务,run()方法称为线程执行体。2.创建Thread类的子类,即创建了线程对象。3.调用线程对象的start()方法来启动该线程:①启动线程;②调用当前线程的run()方法。2.实现Runnable接口java.lang.Runnable -->不需要继承Thread类,只需要重写run方法就可以1.创建一个实现Ru

2021-10-13 08:00:19 25

原创 synchronized

synchronizedsynchronized 与static synchronizedsynchronized同步代码块是对类的当前实例进行加锁,防止其他线程访问该类的这个类实例所有synchronized块。static synchronized是控制类的所有实例的访问,static synchronized是限制线程同时访问jvm中该类的所有实例同时访问对应的代码块。结论:synchronized 是对整个方法进行上锁,只有当一个方法执行完毕后,另一个线程才可以执行这个方法。sta

2021-10-12 22:11:59 36

原创 数据结构与算法

数据结构与算法数组 栈 队列 链表 树 图 堆 散列栈和堆概念① 堆可以看作是一棵树的数组对象。堆的性质:+ 堆中的某个节点的值总是小于等于或者大于等于其父节点的值。+ 堆总是一棵完全二叉树。将根节点最大的堆叫做大根堆,根节点最小的堆叫做小根堆。② 栈是一种具有后进先出性质的数据结构。内存分配中的栈和堆堆:堆是jvm的一块内存区域。存储的是数组和对象(其实数组就是对象),new的东西都是在堆中,堆不会随时释放空间,但是会有垃圾回收机制。(栈中存放的是单个变量,变量释放后,就没

2021-10-12 15:53:25 44

原创 2021.10.9小米一面

10-9面试项目介绍股票的实时价格如何获取难点 如何解决集合类简单介绍 对哪个熟悉一些 介绍一下Arraylist 扩容时候Resize线程不安全Lock和synchronized 介绍以及区别Synchronized 演进过程Java内存模型Volatile添加节点时候 新节点放哪里 尾部还是头部线程安全的集合异常 error和exception网络模型 tcp和udp区别 三次握手 四次挥手 三次挥手可以吗Hashset底层堆和栈区别队列和栈区别创建线程方式 thr

2021-10-10 14:51:32 162

原创 面向对象的几大特征

Java基础面向对象的几大特征1.抽象把事务的共同特性抽取出来,构成这类事物的相同特性的集合,也就是类。抽象包括两个方法:对于类中属性的定义,称为数据抽象;对于类中方法的定义,称为过程抽象。2.封装一个类将自己的数据和一些方法的实现细节不对外提供,只提供一些开放的接口供外界访问。比如javaBean的属性私有,属性的赋值或者逻辑只能由javabean本身决定,只提供了get和set方法;orm对象映射框架,不需要关心连接如何建立,sql如何执行,只需要引入mybatis,调用方法就可以

2021-10-05 12:33:09 80

原创 leetcode

链表判断链表是否有环public class Solution { public boolean hasCycle(ListNode head) { if (head == null) return false; ListNode fast = head; ListNode slow = head; while (fast != null && fast.next != null) { slo

2021-10-04 23:28:17 43

原创 InnoDB和MyISAM区别

InnoDB和MyISAM区别Mysql默认存储引擎为InnoDB。1.InnoDB支持事务,MyISAM不支持事务。2.InnoDB支持外键,MyISAM不支持外键。3.InnoDB是聚集索引,MyISAM是非聚集索引。聚集索引的文件主要存放在主键索引的叶子节点上,因此InnoDB是必须要有主键的,通过主键索引效率很高,但是辅助索引需要两次查询,先查询主键,再通过主键去查询数据。因此主键不应该过大,主键太大导致其它索引也都会很大。MyISAM是非聚集索引,数据文件是分离的。索引保存的是数据文

2021-10-04 19:23:15 77

原创 进程间通信的方式

进程间通信:定义:每个进程各自都有不同的用户地址空间,任何一个进程的全局变量在另一个进程中是无法看到的。因此进程间交换数据必须通过内核,需要在内核开辟缓冲区,进程A将数据从用户空间拷贝到内核缓冲区中,进程B再将数据从内核缓冲区拿走。内核提供的这种机制称为进程间的通信。通信方式:1.管道/匿名管道:半双工的,数据只能向一个方向流动,双方通信时需要建立两个管道。只能是有亲缘关系的进程之间使用。一个进程A向管道中写内容时添加到管道缓冲区的末尾,进程B从缓冲区的头部读数据。“先进先出”2.有名

2021-10-04 17:43:35 136

原创 项目 前缀树

前缀树:又称为字典树。应用:用于统计和排序大量的数据(如字符串)。在搜索引擎系统中用于文本词频统计。优点:查询的时候能够减少不必要的比较,查询效率比较高。

2021-10-04 11:58:20 47

原创 项目 grpc http

项目1.http,rpc,grpc区别https://zhuanlan.zhihu.com/p/148139089https://www.jianshu.com/p/fe5ccfc5d7bd?utm_campaign=haruki&utm_content=note&utm_medium=seo_notes&utm_source=recommendation2.http1.0、1.1、 2的区别https://www.cnblogs.com/heluan/p/8620

2021-10-03 22:09:29 176

原创 2021-10-01

Java中的锁Java基本数据类型static 静态变量和实例变量的区别final多线程是指什么多线程的锁 synchronizedequals == hashcode异常 运行时异常差分隐私解释清楚spring的两大特性 说一下linux使用过吗 基本命令以及其它 阿里云服务器是自己部署的吗微服务框架前端知识了解吗redis的基本数据类型redis持久化 两个说一下数据库的隔离级别 什么是脏读项目的基本功..

2021-10-01 10:54:12 46

原创 2021-9-27汇川面试

汇川:项目介绍你对我们公司有什么了解的项目如何评价好坏 评价指标详细描述项目

2021-09-27 18:15:01 513

空空如也

空空如也

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

TA关注的人

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