自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HashMap 面试专题

java HashMap 面试知识

2023-02-26 18:07:19 623 2

原创 面试题:你能不用遍历依次打印一个数组吗?

不用遍历?那不就是递归嘛,简单!public class test { public static void main(String[] args) { int[] arr = new int[]{0,1,2,3}; printArray(arr, arr.length); } public static void printArray(int[] arr, int n) { if (n <= 0) return;

2021-06-05 16:19:51 323 1

原创 String类源码 学习与分析

掌握与分析String类中常见的方法(openjdk-1.8):length、charAt、compareTo、compareToIgnoreCase、concat、containsstartsWith、equals、indexOf、splittocharArray、toLowerCase、trim、valueOfString底层:jdk1.8及以前使用是char[ ],1.9开始使用byte[ ];ps:Java 9引入了Compact Strings来取代Java 6的Compressed

2021-05-20 23:06:37 254 3

原创 java二分查找左右边界

要注意边界!细节是魔鬼!class Solution { public int[] searchRange(int[] nums, int target) { int[] res = new int[]{-1, -1}; res[0] = findLeftBound(nums, target); res[1] = findRightBound(nums, target); return res; } pub.

2021-05-14 21:37:57 413

原创 面试题:手写两个线程交替打印1 - 100

class countThread implements Runnable{ private int count = 0; //加一个停止参数,能让线程停止 volatile boolean stopme = true; @Override public void run() { while(stopme) { if (count == 101) stopme = false; synchronized

2021-05-14 14:41:46 177

原创 回溯算法模板

class Solution { public List<List<Integer>> permute(int[] nums) { //结果集合 List<List<Integer>> res = new ArrayList<>(); //visited是标记作用 int[] visited = new int[nums.length]; //new Arra.

2021-05-12 09:06:43 137

转载 java实现各个排序,快速排序、选择排序、插入排序、希尔排序、桶排序、基数排序、归并排序、堆排序

class Solution { public int[] sortArray(int[] nums) { if(nums.length <=1)return nums; //qSort(nums,0,nums.length-1); //selectSort(nums); // insertSort(nums); // shellSort(nums); // bucketSort(nums); /

2021-04-22 20:01:08 92

原创 Spring : JdbcTemplate操作数据库(详细)

前言什么是 JdbcTemplate?Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作。本文将对《水浒传》英雄人物表进行数据操作示例,先建一张英雄表:(no:排名,name:名字,nickname:绰号)create table hero ( no int, name varchar(5), nickname varchar(3));insert into hero values(1,"宋江","及时雨"),(2,"卢俊义","玉

2020-12-29 15:59:34 332

原创 Spring必学 : AOP操作

1、 什么是 AOP(1)面向切面编程(方面),利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。(2)通俗描述:不通过修改源代码方式,在主干功能里面添加新功能(3)使用登录例子说明 AOP:AOP核心概念:术语说明连接点定义了在程序中可以使用AOP插入其他逻辑的点;类里面哪些方法可以被增强,这些方法称为连接点切入点实际上被增强的方法,称为切入点通知在特定连接点执行的代码就是通知

2020-12-28 23:07:24 127

原创 Java实现线索二叉树

应用案例说明:二叉树存储一个白酒排名,进行中序线索二叉树。中序遍历的数列为 {8,4,2,5,1,6,3,7}。1、 问题分析当我们对上面的二叉树进行中序遍历时,数列为 {8,4,2,5,1,6,3,7}但是 8,4,5,6,7 这几个节点的 左右指针,并没有完全的利用上.如果我们希望充分的利用各个节点的左右指针, 让各个节点可以指向自己的前后节点,怎么办?解决方案-线索二叉树2、线索二叉树基本介绍n 个结点的二叉链表中含有 n+1 【公式 2n-(n-1)=n+1】 个空指针域。利

2020-12-27 15:54:43 262 2

原创 Spring IOC控制反转必学必会内容:IOC 操作 Bean 管理( 基于注解方式 )

1、什么是注解(1)注解是代码特殊标记,格式:@注解名称(属性名称=属性值, 属性名称=属性值…)(2)使用注解,注解作用在类上面,方法上面,属性上面(3)使用注解目的:简化 xml 配置2、Spring 针对 Bean 管理中创建对象提供注解(1)@Component(2)@Service(3)@Controller(4)@Repository上面四个注解功能是一样的,都可以用来创建 bean 实例3、基于注解方式实现对象创建第一步 引入依赖第二步 开启组件扫描(新建一个x

2020-12-24 16:47:42 145

原创 Spring IOC控制反转必学必会内容:IOC 操作 Bean 管理( 基于XML方式 )二

IOC 操作 Bean 管理(FactoryBean)1、Spring 有两种类型 bean,一种普通 bean,另外一种工厂 bean(FactoryBean);2、普通 bean:在配置文件中定义 bean 类型就是返回类型;3、工厂 bean:在配置文件定义 bean 类型可以和返回类型不一样第一步 创建类,让这个类作为工厂 bean,实现接口 FactoryBean第二步 实现接口里面的方法,在实现的方法中定义返回的 bean 类型...

2020-12-24 11:07:53 114

原创 Spring IOC控制反转必学必会内容:IOC 操作 Bean 管理( 基于XML方式 )

一、IOC1、Spring 有两个核心部分:IOC 和 Aop(1)IOC:控制反转,把创建对象过程交给 Spring 进行管理(2)Aop:面向切面,不修改源代码进行功能增强2、控制反转(IOC)到底为什么要起这么个名字?可以参考一下这篇文章:浅谈IOC–说清楚IOC是什么。总结来说,就是对象A与对象B有依赖关系,那么对象A在程序运行到某一时刻就要主动去创建对象B或者使用已经创建的对象B;但有了容器(spring)后,IOC容器会主动创建一个对象B注入到对象A需要的地方,这样对象A就不需要主动

2020-12-23 16:29:06 301 1

原创 用数组实现栈、用链表实现栈(Java语言)

前言栈的介绍:栈的英文为(stack)栈是一个先入后出(FILO-First In Last Out)的有序列表。栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的 一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元 素最先删除,最先放入的元素最后删除图解方式说明出栈(pop)和入栈(push)的概念:栈

2020-12-22 23:15:44 156

原创 Java单向环形链表解决约瑟夫问题

Josephu(约瑟夫、约瑟夫环) 问题Josephu 问题为:设编号为 1,2,… n 的 n 个人围坐一圈,约定编号为 k(1<=k<=n)的人从 1 开始报数,数到 m 的那个人出列,它的下一位又从 1 开始报数,数到 m 的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。提示:用一个不带头结点的循环链表来处理Josephu 问题:先构成一个有n个结点的单循环链表(单向环形链表),然后由k结点起从1开始计数,计到m时,对应结点从链表中删除,然后再从被删除结点的下

2020-12-13 19:56:59 237

原创 Java实现单链表

用一个单链表作为示例来存储一个白酒的排名:

2020-12-09 22:00:32 175 1

原创 数组模拟环形队列及其Java实现

将顺序队列想象成一个环形的空间,如图:开始时,front和rear都指向第一个元素。在这,我们定义:front指向第一个元素,rear指向最后一个元素的再后面一个。取余运算:初始时:front = rear = 0队首指针进1: front = (front + 1)% MaxSize队尾指针进1: rear = (rear + 1) % MaxSize队列的长度: (rear + MaxSize - front)% MaxSize牺牲一个单元来区分队空还是队满:入队时少用一个队列单元,

2020-12-08 21:59:28 207

原创 稀疏(sparsearray)数组及其Java实现

前言我们先看一个五子棋盘:用一个二维数组来记录它,发现二维数组上有很多0,只有一个1和一个2,那用这种方式存储这个五子棋盘就很浪费空间了。在此,我们引入稀疏数组,它可以完整地记录上面这个棋盘,但规格小了很多:这个稀疏数组是这样得来的:第0行:二维数组有11行11列,其中值不为零的有2个数;第1行:1行2列中有一个不为零的值为1;第2行:2行3列中有一个不为零的值为2。再举一个栗子:得出稀疏数组的简单定义:矩阵中非零元素的个数远远小于矩阵元素的总数,并且非零元素的分布没有规律则称该矩阵为

2020-12-07 22:15:36 285

原创 B/S架构程序的访问流程

一、B/S架构程序的访问流程下图分别有Browser、WebServer、DBServer(称作3tier)。小张和小王分别访问webServer,让我们看看他们各自的流程。二、小张和小王的访问小张的访问:小张在浏览器地址栏上输入的请求路径是http://202.108.251.34:8080/egov/login.html,其原理是:(8080是tomcat)步骤说明(1)浏览器在广域网中搜索ip地址是202.108.251.34这个计算机;(2)找到这台计算机之

2020-12-06 16:41:23 2076

原创 Java中JDBC的超详细总结

前言1、JDBC是什么?Java DataBase Connectivity(Java语言连接数据库)2、JDBC的本质是sun公司制定的一个接口。在java.sql.*包下。为什么SUN需要制定一套JDBC接口?因为每一个数据库的底层实现原理都不一样。Oracle数据库有自己的原理,MySQL数据库也有自己的原理,MS SqlServer数据库也有自己的原理…每一个数据库产品都有自己独特的实现原理,如果没有这套接口就需要写多套java程序。驱动:就是一个jar包,里面包含了JDBC的实现

2020-12-03 22:44:07 33872 5

原创 使用IDEA工具JDBC代码配置驱动,导入jar包(两种方法)

方法一(1)新建一个项目—>右键点击项目—>点击“打开模块设置(Open Module Settings)”(2)点击库(Libraries)—>点击加号—>选择java(3)选择你所下载的jar包—>一直点击确定即可方法二...

2020-12-02 16:42:32 3586 1

原创 Java中接口(interface)总结

前言接口与类一样,也是一种“引用数据类型”,其中只能有常量(只能是常量,总是static和final修饰的)和方法的声明(只能有方法名称、参数及其类型,不能有方法体);最后,接口没有构造方法,不能被实例化。接口是完全抽象的,可以看作是特殊的抽象类。接口和抽象类的比较:抽象类接口是半抽象的是完全抽象的有构造方法没有构造方法,不能实例化类与类之间只能单继承接口与接口之间支持多继承一个类可以实现多个接口,一个抽象类只能继承一个类(单继承)--接口中只允

2020-11-25 16:50:20 997

原创 计算机网络第1章(概述)- 湖科大计算机网络课程笔记整理

笔记整理湖科大计算机网络1.1 计算机网络在信息时代的作用(1)计算机网络已由一种通信基础设施发展成为一种重要的信息服务基础设施;(2)计算机网络已经像水,电,煤气这些基础设施一样,成为我们生活中不可或缺的一部分。1.2 因特网概述1、网络、互连网(互联网)和因特网的基本概念-简介网络网络(Network)由若干结点(Node)和连接这些结点的链路(Link)组成互连网(互联网)多个网络通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互连网(互联网)。因此

2020-11-24 15:51:55 3008 2

原创 数据库设计三范式理解

在网上查询一些资料,加上自己的理解做了一些笔记:一、为什么需要三范式这是设计表的依据,按照三范式设计的表不会出现数据冗余。二、三范式范式说明第一范式(1NF)每一个表都需要有主键,每一个字段的具有原子性,不可再分第二范式(2NF)有主键,非主键字段完全依赖主键,不能产生部分依赖第三范式(3NF)非主键字段不能相互依赖1、第一范式(1NF)每一个表都需要有主键,每一个字段的具有原子性,不可再分。不符合第一范式的示例:该表没有主键,而且联系方式中可以分

2020-11-23 15:50:00 847

原创 动力节点杜老师34道MySQL题答案

数据:1、取得每个部门最高薪水的人员名称第一步:先找出每个部门的最高薪水(按部门编号分组),把它当做临时表:select deptno,max(sal) as maxsal from emp group by deptno;第二步:select e.ename,e.sal,d.dnamefrom emp ejoin (select deptno,max(sal) as maxsal from emp group by deptno) ton t.maxsal=e.sal a

2020-11-23 14:43:00 2060 2

原创 leetcode力扣MySQL数据库刷题(31 - 45)

(31)511. 游戏玩法分析 Iselect player_id,min(event_date) as first_loginfrom activitygroup by player_id(32)512. 游戏玩法分析 IIselect a.player_id,a.device_id from activity ajoin (select player_id,min(event_date) as first_login from activity group by player_id)

2020-11-23 09:45:54 319

原创 leetcode力扣MySQL数据库刷题(21 - 30)

(21)1517. 查找拥有有效邮箱的用户正则表达式的使用,令人脑大。select *from users where mail regexp '^[a-zA-A]+[a-zA-Z0-9_\\./\\-]*@leetcode\\.com$';(22)584. 寻找用户推荐人select name from customer where referee_id<>2 or referee_id is null;(23)1571. 仓库经理select w.nam

2020-11-22 17:07:25 330

转载 MySQL查询重复出现次数最多的记录

MySQL查询的方法很多,下面为您介绍的MySQL查询语句用于实现查询重复出现次数最多的记录,对于学习MySQL查询有很好的帮助作用。在有些应用里面,我们需要查询重复次数最多的一些记录,虽然这是一个很简单的查询语句,但是对许多初学者来说,仍然有些难度,特发此文章备查。SELECT keyword, count( * ) AS count FROM article_keyword GROUP BY keyword ORDER BY count DESC LIMIT 20 此段查询语

2020-11-22 15:53:28 3837 1

原创 MySQL中的四个排序函数 - rank()、dense_rank()、row_number()、ntile() (通俗易懂)

创建一个学生成绩表作为示例:drop table if exists t_student;create table t_student ( name varchar(10) primary key, classno int, score int);insert into t_student(name,classno,score) values ('aaa',1,85);insert into t_student(name,classno,score) values ('bbb',

2020-11-22 14:18:28 1856

原创 leetcode力扣MySQL数据库刷题(1 - 20)

(1) 1068. 产品销售分析 Iselect p.product_name,s.year,s.pricefrom sales sjoin product pon s.product_id=p.product_id;(2)1069. 产品销售分析 IIselect product_id,sum(quantity) as total_quantityfrom salesgroup by product_id;(3)107

2020-11-21 20:51:00 868

原创 MySQL基础总结(六)- 存储引擎

存储引擎是MySQL特有的,其它数据库没有。存储引擎的本质:(1)通过采用不同的技术将数据存储在文件戒内存中;(2)每一种技术都有不同的存储机制,不同的存储机制提供丌同的功能和能力;(3)通过选择不同的技术,可以获得额外的速度戒功能,改善我们的应用;一、查看存储引擎show engines结果:...

2020-11-18 10:08:40 1061 1

原创 MySQL基础总结(五)- 常见约束(constraint)详解

一、前言在创建表的时候,可以给表的字段添加相应的约束,添加约束的目的是为了保证表中数据的合法性、有效性、完整性。二、常见的约束名称说明非空约束(not null)约束的字段不能为NULL唯一约束(unique)约束的字段不能重复主键约束(primary key)约束的字段既不能为NULL,也不能重复(简称PK)外键约束(foreign key)用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值(简称FK)检查约束(check)注意O

2020-11-17 23:18:14 2117

原创 MySQL基础总结(三)- limit的用法

用于分页查询select * from table limit m,nm是指记录开始的索引(sql语句索引从0开始,0表示第一条记录),当m为0时可省略i;n是从m+1条开始,取n条。limit是sql语句最后执行的一个环节:select 5 ...from 1 ... where 2 ... group by 3 ...having 4 ...order by 6 ...limit 7 ...;...

2020-11-17 20:07:49 1198

原创 MySQL基础总结(四)- 建表、插入数据、表的复制、修改数据、删除数据

一、建表MySQL当中常见的字段数据类型字段名称说明int整数型(java中的int)bigint长整型(java中的long)float浮点型(java中的float double)char定长字符串(String)varchar可变长字符串(StringBuffer/StringBuilder)date日期类型 (对应Java中的java.sql.Date类型)BLOB二进制大对象(存储图片、视频等流媒体信息) Binary La

2020-11-17 17:37:42 1303

原创 MySQL基础总结(二)- 多表查询、子查询

1

2020-11-15 21:21:04 670

原创 MySQL基础总结(一)- 常用的命令、单表查询

一、SQL的分类名称英文作用代表关键字DQL(数据查询语言)Query查询语句selectDML(数据操作语言)Manipulation增、删、改表中的数据insert、delete 、updateDDL(数据定义语言)Denifition对表结构的增删改create、drop、alterTCL(事务控制语言)Trasactional Control提交事务,回滚事务commit、rollbackDCL(数据控制语言)Control

2020-11-13 22:39:00 1105

原创 Java中的神奇的技术—反射

前言反射允许运行中的 Java 程序对自身进行检查,或者说“自审”或“自省”,并能直接操作程序的内部属性。这个技术允许程序员不通过new一个对象,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意方法和属性。实现Java反射机制有Class类、Field类、Constructor类和Method类。类名属于哪个包说明Class类java.lang代表正在运行的Java应用程序中的一个类Filed类java.lang.reflect代表动态绑定的类

2020-11-11 22:25:39 1056 4

原创 Java集合总结(详细)

一、集合与数组的比较-集合数组可以存放的内容只能是对象(引用)基本数据类型和对象(引用数据类型)都可以,创建前需要声明它容纳的元素的类型,一个数组只能是其中一种容量可以动态扩展容量是静态的,创建之后无法改变,不能越界size()方法可以查询元素的个数数组无法判断其中实际存有多少元素,length()只告诉了数组的容量集合以类的形式存在,具有封装、继承、多态等类的特性二、集合结构继承图集合分为两大类:一类是单个方式存储元素,超级父接口是jav

2020-11-09 20:28:53 2337 6

空空如也

空空如也

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

TA关注的人

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