
Java
文章平均质量分 63
shy078
本人活泼开朗,热爱篮球,热爱编程,想找到一份理想的工作。
展开
-
骚年,Java值传递你会吗
骚年,Java值传递你会吗值传递和引用传递Java中的值传递总结值传递和引用传递1、值传递是通过方法对传入值操作后,并不会改变传入的值2、引用传递是通过方法对传入的值操作后,会改变传入的引用指向数据Java中的值传递Talk is cheap, show your code。/** * @author : cuantianhou 2020/4/30 */public class...原创 2020-04-30 17:29:20 · 232 阅读 · 2 评论 -
Https的安全通信机制保证
1、加密方式2、Https安全通信机制参考文章:https://blog.youkuaiyun.com/guolin_blog/article/details/104546558?depth_1-utm_source=distribute.pc_feed.none-task-blog-alirecmd-12&request_id=&utm_source=distribu...原创 2020-04-17 16:01:53 · 150 阅读 · 0 评论 -
基于SpringBoot的Dubbo泛化调用的实现
Dubbo的泛化调用不需要引入调用方的接口,只需要指定接口的全类名,就可以调用服务,一般用于框架集成。接下来就基于SpringBoot实现了Dubbo的泛化调用。1、服务端定义1.1 服务定义及实现package com.smart.springboot.api;public interface HelloServiceFacade { void ...原创 2020-04-02 10:48:59 · 2234 阅读 · 0 评论 -
你写了个Bug之集合判断包含元素
有时你会发现,Bug测试没测出来,结果生产跑出来了,只能一句mmp,无情啊。通常,我们会使用HashSet作为集合判断是否包含某一元素,show codepublic class Test{public static void main(String []args){ HashSet<String> setString = new ...原创 2020-01-02 19:37:51 · 388 阅读 · 1 评论 -
数据结构之线性表(Java版本)
线性表的存储分为:顺序存储和链式存储顺序存储的一种实现:ArrayList,数据量大的情况下,查找的效率高,删除和新增的效率低链式存储的实现:LinkedList,数据量大的情况下,查找的效率低,删除和新增的效率低下面给出简单的实现:ArrayList:package ds.list;/** * @author : cuantianhou 2019/12/19 */...原创 2019-12-19 17:18:13 · 171 阅读 · 0 评论 -
Spring-Quartz添加定时任务失败
项目启动添加定时任务失败失败原因:case1:定时任务的cron表达式设置的时间早于当前时间 case2: 设置的定时任务额cron表达式不合法解决方案:solution1:保证任务设置的执行时间晚于当前时间 solution2:保证corn表达式的正确性...原创 2019-12-19 16:45:04 · 764 阅读 · 0 评论 -
二叉树的代码实现 JAVA 版本
本文主要实现二叉树的简单功能:(1)二叉树的生成(2)二叉树的遍历:前序遍历,中序遍历,后序遍历,层次遍历(3)二叉树的删除(3)判断节点是否存在的功能package ds.tree;import ds.link.Node;import java.util.LinkedList;import java.util.Queue;/** * @author : c...原创 2019-12-18 17:32:41 · 144 阅读 · 0 评论 -
排序算法之快排与归并排序
1、快速排序适合数据量大,排序时间短,具体代码如下:package ds.sort;/** * @author : cuantianhou 2019/12/16 */public class QuickSort { /** * 主要思路:取基准数据,从数据高位寻找小于基准数据的值,然后用目标值替换低位置的值, * 然后从低位置寻找大于基准数据的...原创 2019-12-16 15:13:03 · 154 阅读 · 0 评论 -
建索引的几大原则
1、最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a=1andb=2andc>3andd=4如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整。2、=和in可以乱序,比如a=1and...原创 2019-12-15 14:52:27 · 175 阅读 · 0 评论 -
数据结构与算法
数据结构与算法数据结构数据结构的概念数据结构的存储顺序存储连续的存储空间链式存储非连续的存储空间 数据数据的逻辑机构集合结构线性结构 一对一数组 长度固定数组元素的添加step1: 创建一个新的数组step2: 遍历新的数组step3: 遍历到指定位置将元素添加进去数组元素的删除step1:创建一个数组step2:遍历旧的数组step3:遍历到指定位置将元素删...原创 2019-12-15 14:48:16 · 133 阅读 · 0 评论 -
异常处理
为了对异常统一处理,同时精简代码数量。public void dealException(Exception e){ if(e instance of 自定义异常){ 自定义异常处理代码块; return; } 系统异常处理代码块;}...原创 2019-12-11 10:27:40 · 160 阅读 · 1 评论 -
线程池执行流程图
1、通过ThreadpoolExecutor创建线程,关键的构造函数 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueu...原创 2019-12-10 14:29:11 · 614 阅读 · 0 评论 -
基于JDK1.8的HashMap源码分析
基于JDK1.8的HashMap源码分析What is HashMap?Data Structer of HashMapDiagram of HashMapHow to use HashMap?HashMap Source CodeWhat is HashMap? The ability of appling one object to map another object is a go...原创 2019-11-26 15:10:28 · 150 阅读 · 0 评论 -
Generic
GenricWhat is Generic?Params are genericed. In order to implment generic, the java developer user type erasure to be compatible with the previous version of jdk. Therefor, the generic is not real ge...原创 2019-11-20 10:37:35 · 4096 阅读 · 0 评论 -
分布式事务
分布式事务分布式事务概念分布式事务解决方案XA协议分布式事务模型XA协议的两阶段提交XA协议的一阶段XA协议的二阶段TCC解决方案TryConfirmCancle分布式事务中间件阿里云GTS开源应用LCNLCNLCNLockConfirmNotify分布式事务概念 事务的参与者,支持事务的服务器,资源服务器以及事务管理者位于分布式系统不同节点上 举例说明:创建订单服务,创建订单服务包括:...原创 2019-11-17 18:54:25 · 174 阅读 · 0 评论 -
SpringBoot多数据源切换
SpringBoot多数据源切换(1)可以通过建立多个SqlFacotoryBean管理不同的数据源(2)可以建立同一个SqlFactoryBean管理不同的数据源今天主要讲解一下第二种方案。1、导入项目依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.o...原创 2019-08-21 19:59:13 · 286 阅读 · 0 评论 -
线程那点事
1、进程与线程概念 进程是资源分配的基本单位,线程是资源调度的基本单位。2、从JVM角度看线程:线程私有的内存空间:程序计数器、本地方法栈、虚拟机栈程序计数器:线程不是总被执行的,与CPU的调度算法相关,当线程被中断后,需要记录执行的位置,当恢复执行时,自动按记录的位置执行。本地方法栈、虚拟机栈:防止其他线程访问自己的数据。3、并发与并行的区别并发:同一时间...原创 2019-08-29 15:00:16 · 410 阅读 · 0 评论 -
Mybatis学习笔记-源自黑马程序员学习视频
JDBC简介JDBC(Java DataBase Connectivity)是Java和数据库之间的一个桥梁,是一个规范而不是一个实现,能够执行SQL语句。它由一组用Java语言编写的类和接口组成。各种不同类型的数据库都有相应的实现,本文中的代码都是采用MySQL数据库实现的。JDBC操作流程如下JDBC操作流程分析(1)根据AOP的设计思想,将公共的模块剥离出,让程序员更加关...原创 2018-06-02 09:25:22 · 2027 阅读 · 0 评论 -
Java面试常问问题锦集
1、5个常用的java-api包主要使用的java-api包在rt.jar文件中,主要使用的api包如下:io:文件操作、流操作lang:java编程基础类math:数学函数net:网络编程工具sql:数据库编程工具util:java编程工具类补充其他:1.1 & 和 && 的区别1.2 == 和 equals的区别1.3 装...原创 2019-08-12 12:18:21 · 185 阅读 · 0 评论 -
尚硅谷_Banking项目的那些事
1.Banking项目第一部分这部分练习主要是体现了类的封装性以及构造函数的,其项目需求见UML图2.Banking项目第二部分这部分蛮简单的,其项目需求如UML图所示。3.Banking项目第三部分这部分也简单,主要练习在类中定义方法以及如何调用,其项目需求如UML图所示。4.Banking项目第四部分。在类中使用数组模拟集合操作,项目需求如UML图所原创 2016-07-20 19:41:35 · 1079 阅读 · 0 评论 -
Java EE之JDBC
1.获取数据库连接对象的过程方法原型是:public Connection getConnection();(1)创建一个Driver的实现类的对象。其中Driver是Java提供的接口,实现类是由具体的数据库厂商提供。(2)提供数据库连接的信息:数据库的URL,用户名和密码。通过Properties类的对象添加用户名和密码。 数据库URL的格式:jdbc:mys原创 2016-08-01 19:45:12 · 442 阅读 · 0 评论 -
Java之面向对象
Java之面向对象面向对象的三大特性:封装性,多态性和继承性。那么问题来了: 在Java中能够体现这三大特性的关键字是什么呢?个人的观点是extends和abstract或者interface,extends体现了类的继承特性,abstract或者interface体现了类的多态性。Java类中的方法: 2.1. 方法参数 Java方法参数的传递分为值传递和引用传递, 值传递是指基本数据类型原创 2017-08-23 10:54:28 · 165 阅读 · 0 评论 -
Spring4.0的学习-------源自尚硅谷
1. spring简介Spring是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架。2.spring的模块3.Spring控制反转(IOC)需求调用一个类中的方法,比如创建一个Helloworld类,调用Helloworld中的sayHello方法3.1 传统的方式首先创建一个HelloWorld类public class Hel...原创 2018-06-10 11:56:29 · 1165 阅读 · 0 评论 -
Java基础知识
1. Java变量的命名规范(1)名称只能由字母、数字、下划线、$符号组成(2)不能以数字开头(3)不能使用Java中的关键字2. Java八种基本数据类型(1)整数:byte,short,int,long,对应的封装类型:Byte,Short,Integer,Long 对应的默认值:0,0,0,0L(2)小数:float,double 对应的封装了类型:Float,Dou...原创 2018-06-19 08:45:30 · 156 阅读 · 0 评论 -
Spring-redis消息的订阅与发布
消息发布与订阅概述消息订阅发布模型如图所示消息生产者负责消息的发布,通过约定的通信方式,让消费者消费相应的消息。下面使用redis简单了实现了消息的订阅与发布。1.消息的订阅方1.1配置文件 <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework....原创 2018-07-04 09:17:51 · 2667 阅读 · 0 评论 -
开发常用系列
1、Java开发工具:Intellij idea2、JDK开发版本:1.7及以上3、WEB容器:Tomcat4.、WEB服务器:Linux5、内存数据库:redis6、数据库:mysql7、数据库连接工具:mybatis8、系统版本管理:Git9、包管理工具:maven-helper8、MQ全称消息队列,是一种异步通信的中间件,常见的消息中间件有kafka、ac...原创 2018-11-26 11:15:00 · 163 阅读 · 0 评论 -
java中的反射与应用
摘要:本文主要讲解了反射的基础语法、反射在动态代理中的应用,动态代理主要讲解了JDK动态代理和Cglib的动态代理。两者的区别是JDK是面向接口的编程,Cglib是面向方法的编程,都有各自的应用场景。1、什么反射?Java程序在运行时,可以获取类的相关信息,可以动态调用对象的方法机制。类比:类是所有对象的抽象,类对象class是对所有类的抽象。(个人观点)2、反射的使用反射应用...原创 2019-03-17 20:33:40 · 166 阅读 · 0 评论 -
Java 8 新特性尝试 系列之一Optional类
Optional类,可以使用该类来判断是否为空package optional;import javax.swing.text.html.Option;import java.util.Optional;/** * * @author smart 2019/3/25 */public class OptionalExercise { public static vo...原创 2019-03-25 23:24:38 · 366 阅读 · 0 评论 -
Java8 新特性之函数式接口
函数式接口,就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口,let's coding。(1)Consumerpackage java.util.function;import java.util.Objects;/** * Represents an operation that accepts a single input argument and return...原创 2019-03-26 00:02:29 · 140 阅读 · 0 评论 -
从集合类中获取某一属性值
背景:获取学生记录后,可能要根据记录中的某一属性进行其他操作,这时候有两种方案(1)遍历获取的学生记录,然后查询相关记录,进行后续操作。(2)获取学生记录中的某一属性,放入集合,一次查询所有的记录。1、创建一个Student对象package com.smart.generic;import lombok.Getter;import lombok.Setter;impor...原创 2019-04-21 19:30:08 · 1129 阅读 · 0 评论 -
多线程实现数据汇总
背景:当需要进行大规模数据计算的时候,整体处理的效率较低,因此需要将数据分块计算然后,最终得到结果。1、首先创建一个计算划分类package com.smart.generic;import lombok.Getter;import lombok.Setter;import lombok.ToString;/** * * @author smart 2019/4/6 *...原创 2019-04-06 11:03:47 · 1728 阅读 · 1 评论 -
zookeeper实现分布式锁
一、分布式锁产生的背景 多机抢夺共享资源二、分布式锁实现的三种方式(1)基于数据库锁的是实现(2)基于Redis的分布式锁实现(Reddisson)(3)基于Zookeeper的分布式锁的实现三、分布式锁实现满足的条件(1)互斥性(2)不会死锁(3)具有容错性(4)锁和解锁必须是同一个客户端四、基于Zookeeper的分布式锁实现(1)添...原创 2019-04-01 20:00:28 · 142 阅读 · 0 评论 -
redis并发测试
1、使用redis实现简单的计数@Setter@Getterpublic class RedisUtil implements InitializingBean { @Autowired private StringRedisTemplate stringRedisTemplate; @Override public void afterPr...原创 2019-04-09 10:21:29 · 805 阅读 · 0 评论 -
JavaWeb之JSP
1JSP的本质是Servlet,那么Servlet中所有的方法都可以用到JSP中,当第一次请求JSP页面时,JSP会被翻译成Servlet源程序,接着再把源程序翻译成Servlet的class文件,最后由Web容器(Tomcat)像调用Servlet程序一样的方式,来装载和解释这个由JSP页面翻译成的Servlet程序。2JSP的隐含对象:request 、response、pageConte原创 2016-07-31 16:42:54 · 320 阅读 · 0 评论