Java
请叫我刀刀啊
不积跬步无以至千里!!!
展开
-
Mybatis-Generator 使用教程:一键自动完成增删改查
Mybatis-Generator 使用教程项目环境:JDK8+postgresql11+IDEA+MAVEN+SPRINGBOOT偷懒,直接创建springboot项目mybatis-generator-demo1、配置依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSc原创 2020-07-19 22:59:28 · 1232 阅读 · 2 评论 -
JVM之二:深入浅出jvm
文章目录1、jvm模型2、类加载器2.1 加载2.2 验证2.3 准备2.4 解析2.5 初始化3、双亲委派机制4、native方法5、PC寄存器6、方法区7、栈:数据结构(先进后出,后进先出)8、堆9、JMM1、jvm模型2、类加载器作用: 加载Class文件。虚拟机自带的加载器启动类(根)加载器扩展类加载器应用程序加载器类加载机制:其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则原创 2020-07-08 15:28:06 · 324 阅读 · 0 评论 -
ActiveMQ教程之三:JMS基础知识
文章目录四、JMS规范1、JMS是什么2、消息头3、消息体4、消息属性5、消息的持久化6、消息的事务7、 消息的签收机制8、 JMS的点对点总结9、 JMS的发布订阅总结四、JMS规范1、JMS是什么什么是Java消息服务?Java消息服务指的是两个应用程序之间进行异步通信的API,它为标准协议和消息服务提供了一组通用接口,包括创建、发送、读取消息等,用于支持Java应用程序开发。在JavaEE中,当两个应用程序使用JMS进行通信时,它们之间不是直接相连的,而是通过一个共同的消息收发服务组件关联起来原创 2020-07-04 21:30:17 · 269 阅读 · 0 评论 -
ActiveMQ教程之二:queue和topic的使用
文章目录三、基本的使用1、 JMS编码总体规范2、Destination简介3、队列消息生产者消费者入门案例4、TOPIC消息生产者消费者入门案例三、基本的使用1、 JMS编码总体规范JMS : Java 消息中间件的服务接口规范,activemq 之上是 mq , 而 mq 之上是JMS 定义的消息规范 。 activemq 是mq 技术的一种理论实现(与之相类似的实现还有 Kafka RabbitMQ RockitMQ ),而 JMS 是更上一级的规范。2、Destination简介Des原创 2020-07-04 21:28:04 · 1498 阅读 · 0 评论 -
ActiveMQ教程之一:ActiveMQ的了解以及安装
文章目录一、入门概述1、MQ的产生背景2 、MQ的主要作用3、 MQ的定义4、MQ的特点二、ActiveMQ的安装及控制台1、安装2、进入管理界面一、入门概述1、MQ的产生背景系统之间直接调用存在的问题?微服务架构后,链式调用是我们在写程序时候的一般流程,为了完成一个整体功能会将其拆分成多个函数(或子模块),比如模块A调用模块B,模块B调用模块C,模块C调用模块D。但在大型分布式应用中,系统间的RPC交互繁杂,一个功能背后要调用上百个接口并非不可能,从单机架构过渡到分布式微服务架构的通例。这些架构会原创 2020-07-03 11:09:14 · 452 阅读 · 0 评论 -
java求职面试题汇总(持续更新)
一、华为武汉研究所(OD模式)总共有好几轮:机考-性格测试-视频技术面试-HR面试-部门负责人面试。1、机考总共两道编码题,只要一道题目通过率百分之百基本就没有问题了。题目基本都是牛客网上的编程题,难度一般,不是很高。具体题目当时没有记下来,自己只做对了一题。2、性格测试当时好像是隔了三天左右就出结果了,做了一下华为的性格测试题,做的时候还感觉奇怪,为什么好多重复题,后来看了才发现,有些同学居然挂在了性格测试上,因为有重复出现的题目就是为了检测你的回答是否前后一致,是否有出现矛盾的地方。还是得小心原创 2020-07-01 22:52:18 · 1311 阅读 · 0 评论 -
MYSQL入门基础知识
文章目录一、数据库安装二、数据类型1、数值类型2、日期和时间类型3、字符串类型三、常用命令1、基本术语2、常用命令四、mysql事务1、事务的四个特性(acid)2、事务的隔离级别3、MYSQL 事务处理主要有两种方法:五、索引1、索引的优缺点:2、索引的分类六、如何防止SQL注入一、数据库安装关于数据库安装部分可以参考菜鸟教程,这个是个不错的网站。https://www.runoob.com/mysql/mysql-install.html另外,关于数据库操作,可以使用Navicat工具进行数据库原创 2020-06-26 10:45:10 · 7343 阅读 · 1 评论 -
java面试常问系列之HashMap详细源码分析。
HashMap源码分析hashmap一直都是面试的高频问题。这次让我们一起彻底干掉它,以后再也不怕面试官问这个问题了。首先我们先对这个方法的文档阅读一下,下面做个简单大概的翻译,先提前了解一下hashmap。那么,我们再来看一下hashmap中的一些成员变量熟悉了这些变量之后,我们先大概了解一下在JDK8中,hashmap的结构是什么样子的。在hashmap中,元素最小单位是entry,里面存放的是一个key-value键值对,还有一种叫法是bucket(桶)。在扣源码的时候,我们先补点位原创 2020-06-23 07:13:02 · 380 阅读 · 0 评论 -
swagger的简单入门和使用
一、什么是swagger?Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 restful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法、参数和模型紧密集成到服务器端的代码,允许 API 来始终保持同步。Swagger 让部署管理和使用功能强大的 API 从未如此简单。二、如何使用swagger?本文主要介绍在springboot中swagger的使用。1、导入依赖:<dependency> <groupI原创 2020-06-19 10:35:30 · 2696 阅读 · 0 评论 -
JVM之一:GC垃圾回收原理及算法分析
导读本人java小白一枚,写博客用意一是做一个学习总结,二是作一个分享。所写内容难免会有错误或者理解不到位的情况,恳请各位大佬不断对我提出批评,用技术吊打我,鞭笞我。拜谢~~一、java中的垃圾1、什么是垃圾简单来说,就是java内存中没有用了的对象,或者说是已经被嫌弃,死亡的对象。2、如何去判断对象是属于垃圾对象呢?最开始,有一种算法叫做引用计数法。顾名思义就是当对象被引用时,通过对对象的引用情况进行登记,如果存在引用的话,则进行加1,否则减1。当该应用计数为0时,则进行回收处理。示例:创原创 2020-06-16 10:37:31 · 1861 阅读 · 0 评论 -
如何安装Tomcat 8.0
一.打开下载地址:https://tomcat.apache.org/download-80.cgi根据需要下载不同版本的Tomcat,并根据操作系统选择不同的下载文件。建议下载zip格式的文件,这样可以免于安装。能够直接使用。当然,一些配置工作还是得做好。二.解压到指定文件中。点击进去:说明:bin -- 文件夹主要是存放Tomcat服务启动相关的执行档及相关设定。...原创 2018-05-12 11:26:28 · 32716 阅读 · 15 评论 -
多线程基础三:线程池
一、线程池的基本概念1、基本概念背景: 由于线程的创建和销毁在并发量比较大的情况下,非常消耗资源,对性能的影响比较大。方案: 提前创建好多个线程,放入线程池中,需要的时候就取出,不需要的时候就放回,以此来避免线程的重复创建和销毁,实现线程的重复利用。线程池的执行流程:2、常见的四种线程池//线程数量不固定,只要有空闲线程空闲时间超过设定值就会被回收,适用于并发不固定的短期任务ExecutorService service1 = newCachedThreadPool();//当前线程数原创 2020-06-15 08:17:43 · 103 阅读 · 0 评论 -
多线程基础二:线程同步,生产者和消费者剖析。
一、线程同步问题在12306购票系统中,一年一度的抢票春运相信小伙伴们都有深刻的印象。坑爹的验证码,万恶的黄牛党,都是历历在目的。那么在这个抢票过程中,每个用户可以看做是一个线程,那么就涉及到用户的买票和退票操作。如果有10张票,但是有20个人同时进行购票操作,我们来模拟一下,线程不同步会是什么样子的。/**假设有两个群体,学生和工人,此时剩余20张票,工人和学生各买10张。*/public class Deom01 { public static void main(String[] a原创 2020-06-13 22:16:29 · 173 阅读 · 0 评论 -
多线程基础一:深入浅出认识多线程及常用方法
一、线程基础知识1、什么是线程官方一点的解释:进程是资源分配的最小单位,线程是CPU调度的最小单位。即进程可以理解为一个正在运行的程序,而线程就是进程中去各个模块执行任务的线程。2、线程的两种常见的开启方法package thread;public class Demo02 { public static void main(String[] args) { //通过继承Thread类开启线程 Thread t1 = new Thread01()原创 2020-06-13 15:40:50 · 221 阅读 · 0 评论 -
Redis入门:七、缓存击穿和缓存穿透以及雪崩
一、前言在正式讲解这三种异常时,我们先话两分钟来回顾一下,redis缓存或者说一般缓存的基本流程,老习惯,开局一张图,剩下全靠编,啊呸,剩下全靠理解。二、缓存击穿以及应对策略1、定义假设有一个热点新闻K-V在缓存数据库中,比如说微博热搜,但是当微博热搜的K-V过期,则会透过缓存数据库,直接打到数据库中,造成一瞬间有大量用户访问,给数据库带来很大的压力。2、应对策略2.1使用互斥锁并发量不大的时候可以使用以下方法实现:简单思路分析:由于缓存击穿是由于用户访问同一个热点K-V,如果刚好该原创 2020-06-11 11:41:50 · 132 阅读 · 0 评论 -
Redis入门:五、持久化RBD和AOF(重点)
一、Redis持久化1、什么是Redis持久化?Redis持久化是指将内存中的数据保存的磁盘,进行存储。2、为什么要Redis持久化?在实际工作中,Redis数据经常发生改变,容易造成数据丢失,同时,如果Redis服务器发生断电等异常,数据断电即失,同时如果服务器退出,服务器中的数据库状态也会消失。二、Redsi持久化的两种方式1、RDB1.1 RDB的含义在指定的时间间隔内将内存中的数据集体快照写入磁盘,也就是Snapshot快照,它恢复时是将快照文件直接读到内存里。Redish会单独创建原创 2020-06-08 15:20:56 · 508 阅读 · 0 评论 -
Redis入门:四、配置RedisTemplate以及编写工具类
一、配置RedisTemplate1、需要的依赖<!--导入lombok插件,方便编写实体类会用到--><dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId></dependency><!--导入redis依赖--><dependency> <group原创 2020-06-06 21:39:09 · 664 阅读 · 0 评论 -
Redis入门:六、主从复制以及哨兵模式
一、主从复制1、主从复制的概念主从复制:将一台redis服务器上的数据复制到另外一台redis服务器中,前者称之为主节点(Master),后者称之为从节点(Slave)。数据只能从主节点到从节点,复制是单向的。master以写为主,slave以读为主。注意: 每个redis服务器都是一个主节点,每个主节点可以连接多个从节点,但是每个从节点只能有一个主节点(一个爸爸可以有多个儿子,但儿子只能一个爸爸,隔壁老王除外,儿子也可以有儿子,既能当爹也能当儿子)。最少是一主二从(一个主机挂掉了还可以有从机进原创 2020-06-10 15:36:39 · 111 阅读 · 0 评论 -
lunix学习:一、阿里云服务器环境的简单搭建
一、购买及配置阿里云服务器阿里云商城https://www.aliyun.com/最好是搞个学生机,会有优惠点,24周岁以下都默认是学生,本人由于穷,找同学帮忙认证了一下。学生机费用比较划算,总的才花了114.购买完成后我们需要配置安全组,也就是开放端口。再点击手动添加输入端口号和ip就行点击实例,再点击实例名称,重置密码,确保安全这样基本就配置完成,重启服务器就行了。二、安装xshell进行lunix命令操作链接:https://pan.baidu.com/s/1gXOYd原创 2020-06-09 09:43:34 · 314 阅读 · 0 评论 -
Redis入门:三、Redis事务、乐观锁
一、redis事务》》》Redis事务的本质:一组命令的集合!一个事务中的所有命令都会被序列化,在事务执行过程中,会按照顺序执行!一次性、顺序性、排他性!执行一些列的命令!Redis事务没有隔离级别的概念Redis单挑命令是保存原子性的, 但是事务不保证原子性Redis的事务:开启事务(multi)命令入队(…)执行事务(exec)取消事务(dicard)编译时异常127.0.0.1:6379> multiOK127.0.0.1:6379> set k1 v1原创 2020-06-05 21:38:30 · 90 阅读 · 0 评论 -
Redis入门:二、常用数据类型及简单命令
一、常用数据类型redis中的key可以理解为mysql中数据库。废话不多说,开局一张图,剩下全靠编,不对,剩下全靠讲解。二、常用的命令redis命令参考文档:http://doc.redisfans.com/由于命令比较多,就不一一列举了。放一张图感受一下:有需要可以去该网站进行查找,也比较方便,后面就讲解一下常用的一些命令,特别是五大基本类型,基本都是大同小异,主要从增删改查四个功能来讲解对应的指令。开始之前,先讲解一下系统指令flushdb #删除当前数据库flushall原创 2020-06-05 18:29:59 · 138 阅读 · 0 评论 -
旅游项目数据后台管理系统(一):数据库表格搭建
一、数据表准备工作使用powerdesigner进行表格设计,最后导出所得到的建表语句/*==============================================================*//* DBMS name: MySQL 5.0 *//* Created on: 2...原创 2020-04-06 10:11:34 · 2928 阅读 · 0 评论 -
SpringSecurity 在spring框架下以及springboot下的使用
一、什么是spring security?spring security 是用于spring里提供的一个安全框架,提供认证和授权功能。目前的话,在springboot应用较多,原因在与springboot简化了其配置,更加容易上手。但是,目前这个案例还是讲一下在spring框架中的配置。二、spring security的用法三、spring security底层源码简单分析。...原创 2020-04-03 22:16:49 · 208 阅读 · 0 评论 -
UUID的使用
一、什么是UUID?UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。在这样的情况下,就不需考虑数据库创建时的名称重复问题...原创 2020-03-26 23:02:09 · 2394 阅读 · 0 评论 -
IDEA方法注释模板创建
一、打开设置路径1、File>>Settings>>Editor>>Code Style>>Live Templates打开后的效果图2、点击右上角的“+”号,再点击“2.Template Group...”3、取一个名字:随意都行,我的是annotation.4、选中创建的annotation,再点击右上角的“+”号...原创 2020-03-23 11:11:42 · 353 阅读 · 0 评论 -
web项目数据库端报错:java.sql.SQLException: No suitable driver found for jdbc
今天做了一个简单的登入页面功能,在调用数据库连接时,有一个小BUG,每次第一次登入时,都会报错:java.sql.SQLException: No suitable driver found for jdbc从字面意思理解,很简单,就是没有找到合适的驱动。但是很奇怪的是,我对调用数据库的类做单元测试时,并没有报错,但是部署到tomcat并做登入时,第一次总是报错。//先加载驱动Cl...原创 2020-03-23 09:17:18 · 447 阅读 · 0 评论 -
在CMD上运行java文件时出现错误:找不到或者无法加载主类的问题。
首先写一个测试文件public class TestDemo { public static void main(String args[]) { System.out.println("success!"); }}通过cmd编译如下:1.通过命令:javac TestDemo.java将其编译成字节码文件2.通过命令:java TestDemo将其运行,并打印输出结果。从中可以看出,在...原创 2018-05-04 16:09:47 · 21683 阅读 · 21 评论 -
类似产生双色球号码功能的代码
功能描述:六个红球+一个蓝球,其中红球的数字范围在1-33;蓝球数字范围在1-16;而且七个数字都不能重复。粗略代码如下:package com.nhu;import java.util.Arrays;import java.util.Random;public class Solution { public static void main(String[] args) { i...原创 2018-05-03 21:44:36 · 447 阅读 · 0 评论 -
java聊天室及其改进
功能描述即分解步骤:1.服务器端接收客户端消息2.服务器接收并返回客户端消息3.客户端可以通过键盘持续的发送消息并接收服务端返回的消息4.服务器同时处理多个客户端请求5。让聊天室内的人可以看到彼此的消息服务器端代码import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;imp...原创 2018-05-03 16:58:37 · 257 阅读 · 0 评论 -
关于数组间的==,equals和Arrays.equals的测试
public class TestArray { public static void main(String[] args) { TestArray ta = new TestArray(); //关于数组的测试 int[] a = {1,2,3}; int[] b = a; System.out.println(a == b);//结果为true b[2] =...原创 2018-04-21 15:08:42 · 4939 阅读 · 0 评论 -
DRP学习之PL\SQL Developer遇到的一些问题及处理方式
在学习王勇老师的DRP项目时,完成了用powerdesigner的物理模型,然后建表,导出sql脚本之后,再将该脚本导入到PL\SQL Developer时遇到了很多问题,最常见的有如下情况:一.提示ORA-00907:缺失右括号 由于是用powerdesigner生成的sql脚本,该软件将not null和default两个关键字的顺序搞反了,因此为报该异常。此时,只需要调换两者顺序就可...原创 2018-04-24 22:03:41 · 265 阅读 · 0 评论 -
关于计算某一范围内的水仙花数
public class TestDemo { /**将多位数分割成单个数字的方法一*/ public int[] storeNum1(int number) { int[] num = new int[10]; //用于存储分割后的数字 int index = 0; //用于标记数组下标 int singleNum = 0; ...原创 2018-04-19 21:40:49 · 846 阅读 · 0 评论 -
css中id和class的区别
一、id和class的区别id你只能用来定义单一元素,定义两个以后,页面不会出现问题,但是W3检测的时候认为该页面不符合标准;class是类,可以定义多个元素。就页面效果而言,两个东西的视觉效果几乎无差别。二、id选择符为什么要少用?它有哪些局限性呢?单一使用的样式用id,需要程序、js动态控制样式用id,id在页面中只能使用一次!提倡少用id,因为id可能和页嵌的程序冲突(比如名称相同等)!三、...原创 2018-05-08 15:49:07 · 1308 阅读 · 0 评论 -
mavn下面手动导入ojdbc6.jar包
第一步:通过cmd命令mvn install:install-file -Dfile=jar所在目录 -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar -DgeneratePom=true运行后如图所示则表示创建成功。第二步,在所创建的mavn项目中的pom.xml文件加入<depende...原创 2018-06-12 22:07:52 · 676 阅读 · 0 评论 -
字符串匹配
package answer01;import java.util.HashSet; import java.util.Scanner; import java.util.Set;public class StringMatching {public static void main(String[] args) { //输入两组字符串 Scanner in = n...原创 2018-07-21 16:05:18 · 263 阅读 · 0 评论 -
JSP学习之路(五)
一.状态管理 1.为什么需要状态管理? web应用程序使用HTTP协议通信,而HTTP协议是"无状态"协议.即服务器一旦完成客户的请求之后,就断开连接.而同一个客户的下一次连接须重新建立网络连接 服务器应用程序有时是需要判断是否是同一个客户发出的请求,因此有必要追踪同一个用户发出的一系列请求. 2.什么是状态管理? 将客户...原创 2018-07-20 16:57:16 · 113 阅读 · 0 评论 -
netctoss项目
一.连接数据库,处理数据所需要的dao包AdminDao.javapackage dao;import entity.Admin;public interface AdminDao { Admin findByCode(String code);}AdminDaoImpl.javapackage dao;import java.io.Serializable;...原创 2018-07-24 19:48:47 · 984 阅读 · 0 评论 -
Tomcat项目500报错处理方法之一
今天做的项目出现了Tomcat500错误,根据错误提示是:java.lang:ClassNotFoundException.搜索了很多解决方法,最终找到一个解决方案.https://blog.csdn.net/u011008029/article/details/49303723这是原文链接,仅供参考....转载 2018-06-16 10:25:29 · 18517 阅读 · 0 评论