- 博客(38)
- 收藏
- 关注
原创 深入浅析MyBatis源码
MyBatis1. SqlSessionFactoryBuilder通过build方法去解析xml配置文件 通过调用XMLConfigBuilder的parse方法将配置文件封装成一个Configuration对象Xml节点解析封装好Configuration对象,回到build方法进入到这个build创建SqlSessionFactory接口的默认实现类...
2020-04-22 11:55:28 249
原创 怎么操作linux服务器
Linux服务器就是采用Linux系统的网络服务器,同时也有采用windows的服务器,作用是类似的。而Linux并不是一个特定的系统,而是使用Linux内核的系统,现在发行版很多,Red hat是其中一个常用做服务器的发行版 Linux服务器具有什么样的优势1.稳定性Linux系统是众所周知最具稳定性的系统;事实上,以Linux系统的美国服务器用户在出现系统崩溃的反馈上
2018-02-02 20:39:39 16185
原创 java 怎样干掉if-else
首先构建一个适合场景思路:当我们接收到一些数据需要对其进行处理时,由于它们来自于不同的渠道(如:微信,支付宝),不同渠道所需的处理方式不同,下面我们写一个简单Demo来实现该的场景。解决思路1、首先构建一个 GeneralChannelRule 基础规则抽象类,定义一个抽象方法process(),不同的渠道都需要实现该抽象方法。publicabstractclassGeneralChannelRule{publicabstractvoidprocess();}...
2021-05-18 16:07:46 654 3
转载 阿里程序员,常用的15个开发工具
阿里将自身在各类业务场景下的技术积淀,通过开源、云上实现或工具等形式对外开放,本文将精选了一些阿里巴巴的开发者工具,希望能帮助开发者们提高开发效率、更优雅的写代码。由于开发者涉及的技术领域众多,笔者仅从自己熟悉的领域,以后端开发者的视角盘点平时可能用得到的工具。每个工具按照以下几点进行介绍: 工具简介 使用场景 使用教程 获取方式 一、Java 线上诊断工具 ArthasArthas阿里巴巴2018年9月开源的一款Java线上诊断工具。工具的使用场..
2021-04-24 22:02:10 276
原创 抢红包算法
抢红包分两种算法1.二倍均值法在此我们假设红包剩余金额为 M红包剩余数量为 N这种算法就是每次都在区间[0,M/N×2] 随机取一个数假设100元红包发10个人,那么合理的做法应该是每个人领到10元的概率相同。第一个人随机金额的范围为[0,100/10×2] ,也就是[0,20],这样平均可以领到10元,此时剩余金额为100-10=90。第二个人随机金额的范围为[0,90/9×2] ,也就是[0,20],这样平均也可以领到10元,此时剩余金额为90-10=80。第三个人随机金额的范围为
2021-02-19 17:29:52 682
原创 面试HashMap的原理
一般来说,java面试必不可少的菜品,那就是“来,讲一下HashMap的原理”那么今天就来讲一下HashMap的原理先说一下JDK1.7跟JDK1.8对它的改变JDK1.7之前使用的是数组加链表,它的数据节点是一个Entry节点,它的一个内部类。HashMap JDK1.7之前的数据插入过程是使用头插法。 JDK1.7跟1.8的区别就是1.7是头插法,1.8是尾插法那么问题来了,HashMap使用头插法会造成什么问题呢? 2. 它在调用resize它的一个扩容的过程,...
2020-12-22 18:54:30 143 1
原创 java锁 synchronized的使用及原理剖析
synchronized用法有三个: 修饰实例方法 修饰静态方法 修饰代码块 1. 修饰实例方法synchronized关键词作用在方法的前面,用来锁定方法,其实默认锁定的是this对象。publicclassThread1implementsRunnable{//共享资源(临界资源)staticinti=0;//如果没有synchronized关键字,输出小于20000publicsynchroniz...
2020-12-04 09:56:43 263
原创 java String的长度
String首先要知道String的长度限制我们就需要知道String是怎么存储字符串的,String其实是使用的一个char类型的数组来存储字符串中的字符的。存储String的容器原来是它那么String既然是数组存储那数组会有长度的限制吗?是的有限制,但是是在有先提条件下的,我们看看String中返回length的方法。String类中的length方法由此我们看到返回值类型是int类型,Java中定义数组是可以给数组指定长度的,当然不指定的话默认会根据数组元素来指定:
2020-12-04 09:46:42 6644
原创 SpringBoot使用PageHelper分页
一. 开发准备1. 开发工具 IntelliJ IDEA 2020.2.3 2. 开发环境 Red Hat Open JDK 8u256 Apache Maven 3.6.3 3. 开发依赖SpringBoot<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifa..
2020-11-29 11:40:00 1713
原创 Spring 中的bean 是否线程安全
结论:不是线程安全的Spring容器中的Bean是否线程安全,容器本身并没有提供Bean的线程安全策略,因此可以说Spring容器中的Bean本身不具备线程安全的特性,但是具体还是要结合具体scope的Bean去研究。Spring 的 bean 作用域(scope)类型 singleton:单例,默认作用域。 prototype:原型,每次创建一个新对象。 request:请求,每次Http请求创建一个新对象,适用于WebApplicationContext环境下。
2020-11-29 11:38:12 134
转载 SpringBoot 注解大全
一、注解(annotations)列表1、@SpringBootApplication包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让Spring Boot扫描到Configuration类并把它加入到程序上下文。2、@ComponentScan组件扫描,可自动发现和装配一些Bean。3、@Configuration等同于Spring的XML配置文件;使用Java代码可以检查类
2020-11-29 11:36:13 99
原创 Spring事务管理机制
一、Spring事务管理的几种方式:Spring事务在具体使用方式上可分为两大类:1. 声明式 基于 TransactionProxyFactoryBean的声明式事务管理 基于<tx>和<aop>命名空间的事务管理 基于@Transactional的声明式事务管理 2. 编程式 基于事务管理器API 的编程式事务管理 基于TransactionTemplate 的编程式事务管理 目前大部分项目使用的是声明式的...
2020-11-29 11:35:09 217
转载 SpringBoot入门案例
基础项目该包含哪些东西。 Swagger在线接口文档。 CodeGenerator 代码生成器。 统一返回。 通用的分页对象。 常用工具类。 全局异常拦截。 错误枚举。 自定义异常。 多环境配置文件。 Maven多环境配置。 日志配置。 JenkinsFile。 Swagger写接口文档通常是一件比较头疼的事情,然而swagger就用是用来帮我们解决这个问题的。可以在线生成接口文档,并
2020-11-29 11:24:38 203
原创 MapStruct简介简单应用
1 MapStruct 是什么?1.1 JavaBean 的困扰对于代码中JavaBean之间的转换, 一直是困扰我很久的事情。在开发的时候我看到业务代码之间有很多的JavaBean之间的相互转化, 非常的影响观感, 却又不得不存在。我后来想的一个办法就是通过反射, 或者自己写很多的转换器。第一种通过反射的方法确实比较方便, 但是现在无论是BeanUtils,BeanCopier等在使用反射的时候都会影响到性能。虽然我们可以进行反射信息的缓存来提高性能。但是像这种的话, 需要...
2020-11-29 11:22:21 324
原创 Kafta原理
消息队列通信的模式 通过上面的例子我们引出了消息中间件,并且介绍了消息队列出现后的好处,这里就需要介绍消息队列通信的两种模式了:一、 点对点模式 如上图所示,点对点模式通常是基于拉取或者轮询的消息传送模型,这个模型的特点是发送到队列的消息被一个且只有一个消费者进行处理。生产者将消息放入消息队列后,由消费者主动的去拉取消息进行消费。点对点模型的的优点是消费者拉取消息的频率可以由自己控制。但是消息队列是否有消息需要消费,在消费者端无法感知,所以在消费者端需要额外的线程去监控。二、 发
2020-11-28 17:36:27 322
原创 JAVA开发环境配置
1.自己在网上下载JDK,本教程使用JDK1.6。下载好JDK后双击运行,然后根据提示进行安装。安装好JDK后bin:存放java可执行文件。如:javac.exe、java.exe等等demo、sample:存放java的一些实例,是学习java的好帮手include:java包含的本地类(如:C语言头文件)lib:包含了java运行库及JDK API库src.zip:解压为
2020-11-28 17:35:20 174
原创 java 无需SSL验证的HTTP请求
实例public static Map<String,Object> doPost(String url, Map<String, String> paramaters) { HttpPost httpReq = new HttpPost(url); // 创建无需SSL验证的httpClient实例. C...
2020-04-25 23:18:47 299
原创 java HTTP传输带Cookie
HTTP传输带Cookie的方式/** * HTTP GET请求 带 cookie * @param url 请求地址 * @return 响应字符串 */ public static String doGet(String url,Map<String,String> cookie) { CloseableHttpC...
2020-04-25 23:16:33 1323
原创 java HTTP请求JSON数据传输
实例public static JSONObject doPost(String url, JSONObject json){ CloseableHttpClient httpclient = HttpClientBuilder.create().build(); HttpPost post = new HttpPost(url); JSON...
2020-04-25 23:08:24 931 6
原创 应用宝SDK YSDK查询余额接口服务端
应用宝对应文档:https://wiki.open.qq.com/index.php?title=%E7%B1%B3%E5%A4%A7%E5%B8%88%E6%9C%8D%E5%8A%A1%E7%AB%AF%E8%AF%B4%E6%98%8E&oldid=47184这是游戏币模式的接入查询余额接口/** * 查询游戏币 * 【现网】https:// ysdk.qq.co...
2020-04-25 23:05:19 1929
原创 应用宝SDK YSDK登录验证服务端
应用宝对应文档地址:https://wiki.open.qq.com/index.php?title=YSDK%E5%90%8E%E5%8F%B0%E6%8E%A5%E5%8F%A3&oldid=47542/** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)...
2020-04-25 22:55:04 1274
原创 java linux部署web项目详解
下载SecureCRT连接linux,激活SecureCRT跟怎么连接自行百度喽,下面开始操作linux服务器1.查看安装的jdkrpm -qa|grep java2.如果有旧的jdk,就卸载jdksudo rpm -e --nodeps java-1.7.0-openjdk-1.7.0.181-2.6.14.1.79.amzn1.x86_643.开始安装j...
2018-11-10 22:22:24 186
原创 微信公众号分享的坑
记一次微信公众号分享sdk这里我的脚本是用jquery写的,不带框架源码首先创建jsp引入JavaScript微信分享js<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>引入jquery<script typ...
2018-11-10 10:38:38 397
原创 Netty入门案例教程
1.首先导入netty-all-5.0.0.Alpha1.jar2.创建一个NettyConfig 整个工程的全局配置package websocketcom.netty;import io.netty.channel.group.ChannelGroup;import io.netty.channel.group.DefaultChannelGroup;import io.netty....
2018-07-15 01:36:47 280
原创 java 反射很重要
1.创建一个User类public class User { private String username; private String password; private String name; public User(){ } public User(String name){ this.name = name; } public Stri...
2018-06-14 00:30:11 182
原创 MyBatis逆向工程建立实体
下面是用MyEcplise开发工具 为例使用Ecplise操作步骤雷同于MyEcplise1.第一步2.搜索MyBatis等待装载完成,完成后3.创建一个web项目创建包,创建generatorConfig.xml文件<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC"-//m...
2018-02-14 15:14:45 211
原创 Spring配置流程
1、配置web.xml1.1、项目工程中的web.xml配置一个servlet,该servlet配置项指定的servlet class是DispatcherServlet(org.springframework.web.servlet.DispatcherServlet)设置初始化载入spring-mvc.xml1.2、对应的<servlet-mapping>配置mapping的url...
2018-02-14 14:15:16 270
原创 SpringMVC入门原理
1.Springmvc简介1.1. 什么是springmvcSpringMVC是一个Spring框架内置的对MVC模式的实现,就spring的一个子模块1.2. 什么是mvcModel - view-controller(模型-视图-控制器),实现页面与业务代码分离 1.3. mvc的作用SpringMVC就是MVC这种思想一个实现.所以作用就是实现页面代码和后台代码的分离.1...
2018-02-09 22:49:16 297
原创 MyBatis简介与运用
1. Mybatis简介1.1. Mybatis是什么 Mybatis是一个java的持久层框架,保存到数据库 持久化:保存到本地文件 1.2. Mybatis的作用 操作数据库1.3. 为什么要学习mybatis 1、jdbc 2、dbutils 3、mybatis Mybatis的理念:使用10%代码...
2018-02-09 22:21:40 301
原创 Tomcat服务器环境配置详解
在系统变量点击“新建”,在弹出的新建系统变量提示框: “变量名”栏填写:CATALIA_HOME(要大写,HOME前有下划线) “变量值”栏填写:D:\Program Files\Tomcat 点击“确定”。 即:文件路径名。配置Path变量选中Path变量,点击右下角“编辑”。弹出框中选择“新建”,在光标闪烁的空白处填写:D:\Progra
2018-02-05 21:45:27 216
原创 Maven搭建SSH连接Oracle数据库
Maven工程搭建SSH连接Oracle数据库首先在pom.xml里引入jar<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org...
2018-02-05 21:37:33 1008
原创 Maven项目目录
Maven标准目录结构好的目录结构可以使开发人员更容易理解项目,为以后的维护工作也打下良好的基础。Maven2根据业界公认的最佳目录结构,为开发者提供了缺省的标准目录模板。Maven2的标准目录结构如下:src/main/javaApplication/Library sourcessrc/main/resourcesAppl
2018-02-02 21:00:59 278
原创 Visual Studio 2013项目打包
VS打包工具 :链接:https://pan.baidu.com/s/1htUg4ok 密码:y2xnVS自带的打包程序默认是没有安装的,如果有打包的需要,请先安装“项目打包部署工具”,安装完成之后,再执行以下步骤:1.右击解决方案,选择添加项目,在打开的对话框中找到【已安装】-【模板】-【其他项目】-【安装和部署】,如图示。第一次使用只有一个灰色图标显示。双击“InstallShield...
2018-02-02 20:50:31 930
原创 正则表达式
表达式全集字符描述\将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“n”匹配字符“n”。“\n”匹配一个换行符。串行“\\”匹配“\”而“\(”则匹配“(”。^匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\
2018-02-02 20:48:01 103
原创 MySQL常用语句详解
Winfrom连接网页第一种方法:调用本地浏览器System.Diagnostics.Process.Start("https://www.microsoft.com/zh-cn");第二种方法://连接 string url = "https://www.microsoft.com/zh-cn"; //定义脚本
2018-02-02 20:45:10 127
原创 怎么使用Linux常用命令大全
系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2)uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuin
2018-02-02 20:40:57 142
原创 MyEcplise_Maven搭建SSM框架
Maven源码 链接:https://pan.baidu.com/s/1eTQMJQy 密码:8j1q博文中的MyEcplise 链接:https://pan.baidu.com/s/1dEdQYa 密码:igws1.安装maven和配置(此步骤并非必须,可以根据情况选择)进入官网下载中心http://maven.apache.org/download.cgi,下载apache-maven...
2018-02-02 15:46:02 493
转载 JAVA跨平台原理
1.实现跨平台机制(JVM java虚拟机)Java实现跨平台无非就是JVM起的作用,可以这样想,如果是C/C++的编译方式,一旦换了一个平台,那么我们就需要重新编译一份对应的可执行代码,但是Java则不同,我们编译好了一份Java字节码,换到不同的平台上时,并不需要重新编译,前提是这些平台上都装了相应平台的JVM,JVM不是跨平台的,但是这是Sun公司的工作:为不同平台提供对应的JVM。所
2018-01-26 11:24:15 193
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人