自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mybatis-Plus 简单的单表CRUD操作功能

mybatis相信都不陌生,目前互联网公司大部分都使用mybatis作为持久层框架,无他,因为可以直接在xml文件中编写SQL语句操作数据库,灵活。但是我们在使用的时候,也会发现有很多增删改查的SQL是每个表都会有的基本操作,如果每个表都写一套增删改查的SQL显然是非常耗时耗力的。只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。只需简单配置,即可快速进行单表CRUD操作,节省大量时间。代码生成,物理分页,性能分析等功能一应俱全。

2022-12-12 18:03:45 401

原创 【高频面试题六】Spring中常用的注解及使用

第二种写法可以通过@RequestParam(required = false)设置为非必传。因为required值默认是true,所以默认必传。第二种写法可以通过@RequestParam(“userId”)或者@RequestParam(value = “userId”)指定参数名。第二种写法可以通过@RequestParam(defaultValue = “0”)指定参数默认值。第一种写法参数为非必传,第二种写法参数为必传。参数名为userId。

2022-12-02 10:31:22 199

原创 线程池方式实现Socket通信

1、最近在项目中可能要用到socket相关的东西来发送消息,所以初步研究了下socket的TCP和UDP实现方式,并且结合java1.5的concurrent.ExecutorService类来实现多线程。

2022-11-15 15:21:43 345

原创 【高频面试题二】进程 线程 多线程 线程安全

比如说电影院卖票,一个窗口类似于一个线程,卖一个人,程序里面的票数就减去一张票,当开启了多个窗口时,多个线程就去抢占资源,修改同一个余票变量,一个窗口拿到了余票数量是29,此时另外一个窗口又卖出了一张,真实剩28张,那么这个时候就产生了线程安全问题,,其实是相对于单条线程来执行多个任务来说的,我们就拿下载文件来举个例子:当我们下载多个文件时,在串行中它是按照一定的顺序去进行下载的,也就是说,必须等下载完A之后才能开始下载B,它们在时间上是不可能发生重叠的。Lock的引入让锁有了可操作性,什么意思?

2022-11-11 17:42:44 96

原创 【高频面试题五】讲一讲java stream流的使用

流是从支持数据处理操作的源生成的元素序列,源可以是数组、文件、集合、函数。流不是集合元素,它不是数据结构并不保存数据,它的主要目的在于计算;:抽取对象集合中的某个元素组成集合。:根据某一条件对集合进行筛选。

2022-11-10 11:47:42 939

原创 【高频面试题四】Comparator和Comparable的区别

comparator和comparable

2022-11-08 17:18:26 146

原创 【高频面试题三】请你聊聊事务

-----首先事务分为和本地事务通俗意义上事务就是为了使得一些更新操作要么都成功,要么都失败。原子性:一系列操作整体不可拆分,要么都执行,要么都不执行。一致性:事务的执行不能破坏数据库数据的完整性和一致性,一个事务在执行之前和执行之后,数据库都必须处于一致性状态隔离性:事务之间相互隔离, 指的是多个事务并发执行的时候不会互相干扰,即一个事务内部的数据对于其他事务来说是隔离的。持久性:一旦事务提交,那么它对数据库中的对应数据的状态的变更就会永久保存到数据库中声明式事务。

2022-10-12 13:47:27 174

原创 (高频面试题一)HashMap和HashTable的区别

4、HashTable底层是数组+链表结构,HashMap底层是数组+链表+红黑树结构( 在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为8)时,将链表转化为红黑树,以减少搜索时间)。1、HashMap和TreeMap一样继承自AbstractMap类,HashTable继承了Directionary类,两者都实现了Map接口。3、HashMap中,null可以作为key,但是这样的key只能有一个;5、初始化容量不同:HashMap 的初始容量为:16,Hashtable 初始容量为:11。

2022-09-23 16:18:41 912

原创 网络IO模型有BIO、NIO、AIO

在BIO中每一个连接都需要分配一个线程来执行,假如A客户端连接了服务器,但是还没有发送消息,这个时候B客户端向服务器发送连接请求,这个时候服务器是没有办法处理B客户端的连接请求的。是异步非阻塞,他对于客户端的连接请求和发送数据请求是用不同的线程来处理的,他是通过回调来通知服务端程序去启动线程处理,适用于长连接的场景。NIO会将获取的请求连接放入到一个数组中,然后再遍历这个数组查看这些连接有没有数据发送过来,如果有数据发送过来,就启动一条线程。BIO是一个连接一个线程。NIO是一个请求一个线程。

2022-09-16 12:21:28 103

转载 C#与Java 的区别

在Java中,方法声明可以带有public修饰符(即使这并非必要),但在C#中,显式为接口的方法指定public修饰符是非法的。3.数据类型:Java跟c#基本都差不多,但是Java的String类型的首字母必须大写,而c#中可以小写也可以大写,还有布尔型,Java中是boolean,c#中是bool。11.继承:Java中用关键字extends,c#只用":"就行了.调用父类的构造方法Java用super关键字,而c#用base关键字。4.变量的命名:Java中可以用$符号,而c#中不可以使用。

2022-09-15 09:52:12 133

原创 Linux 常见操作整理

cp -r /home/test/* /home/another(复制文件夹下的所有文件包含子文件夹下的内容:)cp /home/test/* /home/another(仅复制文件夹下的所有文件,不包含子文件夹)cp /home/test/t1.txt /home/another/ (拷贝至指定目录)cp -r /home/test/ /home/another(文件夹作为一个整体复制:)mv linuxidc.txt /tmp(移动文件到tmp文件夹)Linux 常见操作。

2022-09-14 17:53:37 363 1

原创 java基础相关知识(代码阅读)

1、static关键字下面程序输出结果:public class Test { Person person = new Person("Test"); static{ System.out.println("test static"); } public Test() { System.out.println("test constructor"); } public static void main

2020-12-13 20:25:21 131

原创 springCloud相关总结

什么是 spring cloud?spring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。spring cloud 断路器的作用是什么?在分布式架构中,断路器模式的作用也是类似的,当某个服务单元发生故障(类似用电器发生短路)之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回一个错误响..

2020-12-13 18:32:59 80

原创 Java常见的几种设计模式

原文链接:https://www.cnblogs.com/xiaofengwang/p/11255678.html单例模式简单点说,就是一个应用程序中,某个类的实例对象只有一个,你没有办法去new,因为构造器是被private修饰的,一般通过getInstance()的方法来获取它们的实例。getInstance()的返回值是一个对象的引用,并不是一个新的实例,所以不要错误的理解成多个对象。单例模式实现起来也很容易,直接看demo吧public class Singleton {private

2020-11-13 16:55:24 76

原创 java开发工作三年你应该掌握的知识(持续更新)

1、java中常用的类有哪些?Scanner、system、String、Integer、Arrays、Boolean、Math、Double、Character、Calendar、Random、BigIngteger、arraylist、hashMap、Thread、Date、Iterator2、java中常用的包有哪些?Lang、IO、sql、util、awt、net、3、Object...

2020-05-29 11:30:14 2745 1

原创 如何使用IDEA进行热部署项目

上一篇写了一篇有关于使用IDEA创建一个ssm框架的小项目.一般服务器(比如tomcat,jboss等)启动以后,我们还需要进一步修改java代码,或者是jsp代码。一般来说,改完重启以后才会生效。但如果配置了服务器的热部署,就可以改完代码后立即生效,而不是重启服务器再生效。这样就会节省大量时间!1、首先设置项目的发布模式run-edit configurations-Deployment发布模式改成exploded模式而不是war模式这里简单说一下exploded和war模式的区别:war模

2020-05-22 10:55:09 262

原创 使用IntelliJ IDEA创建一个Maven+SSM项目(二)

1、创建目录结构及相关配置文件2、上面是我们整个项目的结构图,我们来分别解释一下各自的作用:pojo: 存放自定义的java类。如:paper类,user类,book类等,每个类的属性设为private,并提供public属性的getter/setter方法让外界访问service:定义接口,包含系统所提供的功能。(之后还会在service包下再新建impl包)。dao:定义接口,包含与数据库进行交互的功能。controller:控制器,负责接收页面请求,转发和处理。在resource包

2020-05-19 17:05:40 204

原创 使用IntelliJ IDEA创建一个Maven+SSM项目(一)

写在之前,我们在学习SSM项目的时候,使用过很多jar包,加在lib包中,十分多且很复杂,这次我们创建一个Maven项目。

2020-05-18 17:32:17 242

原创 Spring、SpringMVC、Mybatis三大框架你需要知道的知识

写在之前,SSM框架已经成为最受欢迎的企业级 Java 应用程序开发框架,之前公司已经做过使用SSM框架的项目,今天将把之前在学习和使用的过程中的知识点记录下来,一、我们为什么要使用Spring?...

2020-03-25 16:57:10 1463

原创 java异常的捕获和处理

什么是异常?程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止。在Java中即,Java在编译或运行或者运行过程中出现的错误。Java提供了更加优秀的解决办法:异常处理机制。异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰。J...

2020-03-10 14:04:09 191

原创 分布式数据库预研

目前流行的分布式数据库解决方案目前在互联网公司中分布式数据库是使用最广泛的 — 当然,我们局限于大的互联网公司。例如 iteye.com,它也是互联网公司,但是没有必要使用分布式数据库。而BAT的许多应用,因为有上亿级的用户,就必须使用了。当需要使用成千上百台服务器的时候,大家普遍选择的是免费的数据库,例如MySQL。所以网上的文章大多是MySQL的解决方案。对于MySQL的解决方案,一般主...

2020-02-21 13:58:45 151

转载 Java语言快速实现简单MQ消息队列服务

使用 JAVA 语言自己动手来写一个MQ (类似ActiveMQ,RabbitMQ)主要角色首先我们必须需要搞明白 MQ (消息队列) 中的三个基本角色ProducerBrokerConsumer整体架构如下所示自定义协议首先从上一篇中介绍了协议的相关信息,具体厂商的 MQ(消息队列) 需要遵循某种协议或者自定义协议 , 消息的 生产者和消费者需要遵循其协议(约定)才能后成功地生产...

2020-02-14 14:23:29 209

原创 Java异常处理

一、异常的概念Throwable:有两个重要的子类:Exception(异常)和Error(错误),二者都是Java异常处理的重要子类,各自都包含大量子类。Error(错误):是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时JVM (Java虚拟机)出现的问题。例如。Java虚拟机运行错误(Virtual MachineError...

2020-01-06 16:01:26 77

原创 一个 Java 的 Socket 服务器和客户端通信的例子(转)

一个 HelloWord 级别的 Java Socket 通信的例子。通讯过程:先启动 Server 端,进入一个死循环以便一直监听某端口是否有连接请求。然后运行 Client 端,客户端发出连接请求,服务端监听到这次请求后向客户端发回接受消息,连接建立,启动一个线程去处理这次请求,然后继续死循环监听其他请求。客户端输入字符串后按回车键,向服务器发送数据。服务器读取数据后回复客户端数据。这次请求...

2019-12-04 11:48:55 111

原创 Java实现UDP通讯

java 实现udp通讯需求:应用A(通常有多个)和应用B(1个)进行 socket通讯,应用A必须知道应用B的ip地址(在应用A的配置文件中写死的),这个时候就必须把应用B的ip设成固定ip(但是某些时候如更换路由后要重新设置网络,但是操作人员不知道这个规则),就有可能造成应用A和应用B无法进行正常通讯,所以要改成应用A动态获取应用B的ip地址。经过讨论决定采用udp协议实现,upd是一种无...

2019-12-04 11:39:06 604 1

原创 帧、报文、报文段、分组、包、数据报的概念区别

最近使用了抓包工具wrieshark,对包中的一些数据不太了解,在这里学习和记录下:分组、包,packet,信息在互联网当中传输的单元,网络层实现分组交付。用抓包工具抓到的一条条记录就是包。帧,frame,数据链路层的协议数据单元。我们将链路层分组称为帧。数据报,Datagram,通过网络传输的数据的基本单元,包含一个报头(header)和数据本身,其中报头描述了数据的目的地以及和其它数据之...

2019-12-04 10:35:06 268

原创 TCP、UDP、Socket、WebSocket、HTTP、HTTPS之间的区别

写在前面,公司最近在有关于通过手机或者硬件上报数据给服务器的一个项目,涉及到Socket、UDP传输的相关知识,在此记录下学习相关知识的过程。首先我们来看下网络的七层协议,下面是协议层从底层至顶层的一个模型图:Scoket单独把Scoket列出来是因为,他不是一个协议,他是两个应用程序之间互相通信得管道,在TCP/IP得上一层,也就是在传输层和应用层之间的抽象层,是一组API,他可以创建T...

2019-12-04 10:25:32 585

原创 一个java的循环队列(便于理解版本)

用java实现循环队列的方法:1、添加一个属性size用来记录当前的元素个数。目的是当head=rear的时候。通过size=0还是size=数组长度。来区分队列为空,或者队列已满。2、数组中仅仅存储数组大小-1个元素,保证rear转一圈之后不会和head相等。也就是队列满的时候。rear+1=head,中间刚好空一个元素。当rear=head的时候。一定是队列空了。队列(Queue)两...

2019-10-14 16:05:36 125

原创 JAVA IO流的一些基本操作(二)

上一篇我们学习了io流的核心部分,这篇我们学习java io流的更多操作1、打印流打印流的特点:A:只有写数据的,没有读取数据。只能操作目的地,不能操作数据源。B:可以操作任意类型的数据。C:如果启动了自动刷新,能够自动刷新。D:该流是可以直接操作文本文件的。哪些流对象是可以直接操作文本文件的呢?FileInputStream FileOutputStream FileReader...

2019-09-19 11:01:21 83

原创 JAVA IO流的一些基本操作(一)

一、IO流简介Java IO操作主要指的是使用Java进行输入、输出操作,Java中的所有操作类都存放在java.io包中,在使用时需要导入此包。在整个java.io包中最重要的就是5个类和一个接口。五个类指的是File、OutputStream、InputStream、Writer、Reader;一个接口指的是Serializable。掌握了这些,IO流的核心就掌握了。下面我们来看看...

2019-09-19 10:02:17 167

原创 IDEA中最常用的这几个快捷键需要掌握(好记并且重要)

Ctrl+Shift+N 查找某个类Ctrl+F12 查找类中的方法Ctrl+Shift+F 搜索字符串Ctrl+F 搜索本文件Alt+F7 find useages 寻找被调用的地方Ctrl+Alt+<箭头 返回上一个光标的位置Alt+Shift+↑ 向上移动本行代码Alt+Shift+↑ 向下移动本行代码Ctrl+Shift+T 创建一个测试类Alt+Insert 自动...

2019-08-06 17:17:22 248

原创 为什么我们重写equals的时候要重写hashCode?

1、equals的作用== : 它的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同一个对象。equals() : 它的作用也是判断两个对象是否相等。但它一般有两种使用情况。(01) 若某个类没有覆盖equals()方法,当它的通过equals()比较两个对象时,实际上是比较两个对象是不是同一个对象。这时,等价于通过“==”去比较这两个对象。(02) 我们可以覆盖类的equal...

2019-07-24 11:06:10 103

原创 SVN更换服务器ip如何操作

公司因为搬家,导致许多服务器的ip地址发生了变化,当然svn服务器的地址也发生了变化,在更换IP地址的时候,在网上也找了很多操作的方法,但都是复制粘贴,没有说道点上,这里记录下1、首先右键点击项目的根路径这部操作其实比较重要,因为如果你不是在项目的根路径下右键,你是无法找到relocate这个选项的,本人在这也是浪费了一点时间,上图:2、填写新的svn服务器地址...

2019-07-23 10:09:35 2071

转载 Springboot自定义全局异常处理

转自: 飞奔的波大爷链接: https://blog.csdn.net/qq_22860341/article/details/81222379拦截捕捉自定义异常 MyException.class我的异常类:public class MyException extends RuntimeException{ private String code; //异常状态码 ...

2019-07-16 09:46:37 149

转载 Sql优化

作者:风过无痕http://www.cnblogs.com/tangyanbo/p/4462734.html场景我用的数据库是mysql5.6,下面简单的介绍下场景课程表

2019-06-19 09:12:30 74

原创 java中各种集合分类区别与遍历方式总结

一、简单的容器分类你可以看到,其实只有四种容器:Map、List、Set和Queue,,它们各有两到三个实现。常见的用黑色粗线表示。实线框表示普通的类,虚线框表示是一个接口,带有空心箭头的点线表示一个特定的类实现了该接口。实心箭头表示某个类继承了这个类。二、几种常见的集合比较,该如何使用?1、list也建立数字索引与对象的关联,因此,list和数组一样都是排好序的容器,但list可以自动...

2019-06-14 16:01:11 246

原创 java几种常见的算法

一、排序算法1、插入排序//插入 public static void insertSort(int[] a){ int len=a.length;//单独把数组长度拿出来,提高效率 int insertNum;//要插入的数 for (int i = 1; i <len ; i++) {//因为第一次不用,所以从1开始 ...

2019-06-13 11:12:28 1297

空空如也

空空如也

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

TA关注的人

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