自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mybatis中关于枚举类型转字符串的错误分析

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:### Error updating database. Cause: java.lang.IllegalArgumentException: invalid compa...

2019-08-08 17:52:01 2408 1

原创 数据结构Java实现----单向链表的插入和删除

一、链表结构: (物理存储结构上不连续,逻辑上连续;大小不固定) 概念:  链式存储结构是基于指针实现的。我们把一个数据元素和一个指针称为结点。    数据域:存数数据元素信息的域。     指针域:存储直接后继位置的域。  链式存储结构是用指针把相互直接关联的结点(即直接前驱结点或直接后继结点)链接起来。链式存储结构的线性表称为链表。链...

2019-08-08 14:18:57 651

原创 java集合框架中的常用集合及其特点、适用场景、实现原理

JDK提供了大量优秀的集合实现供开发者使用,合格的程序员必须要能够通过功能场景和性能需求选用最合适的集合,这就要求开发者必须熟悉Java的常用集合类。本文将就Java Collections Framework中常用的集合及其特点、适用场景、实现原理进行介绍,供学习者参考。当然,要真正深入理解Java的集合实现,还是要推荐去阅读JDK的源码。Java提供的众多集合类由两大接口衍生而来:Coll...

2019-08-07 15:16:41 625

原创 数据结构Java实现----线性表与顺序表

一、线性结构:如果一个数据元素序列满足:(1)除第一个和最后一个数据元素外,每个数据元素只有一个前驱数据元素和一个后继数据元素;(2)第一个数据元素没有前驱数据元素;(3)最后一个数据元素没有后继数据元素。则称这样的数据结构为线性结构。二、线性表抽象数据类型:1、线性表抽象数据类型的概念:线性表抽象数据类型主要包括两个方面:既数据集合和该数据集合上的操作集合。...

2019-08-06 17:11:54 329

原创 数据结构Java实现----算法概述

一、数据结构涵盖的内容:二、算法的基本概念:1、算法的概念:Algorithm,是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或者多个操作。2、算法的特性:有穷性:指令序列是有限的 确定性:每条语句的含义明确,无二义性 可行性:每条语句都应在有限的时间内完成 输入:零个或者多个输入 输出:一个或者多个输出3、算法与程序的区别:...

2019-08-06 15:34:19 270

原创 Java Collection Framework

java 集合框架图在集合框架中线程安全的类有:Vector、Stack、hashtable、enumeration

2019-08-05 20:01:12 244

原创 spring 注解方式配置Bean

Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件特定组件包括:@Component:基本注解,标示了一个受Spring管理的Bean组件@Respository:标识数据访问层(DAO层)组件@Service:标识服务层(业务层)组件@Controller:标识控制层(表现层),该类是能处理HTTP请求的控制器。对于扫描到的组件, Spring...

2019-08-05 18:01:27 125

原创 JVM常见问题总结

先把本文的目录画一个思维导图:一、Java引用的四种状态:强引用:  用的最广。我们平时写代码时,new一个Object存放在堆内存,然后用一个引用指向它,这就是强引用。  如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。...

2019-08-05 17:13:06 178

原创 Spring核心——数据的类型转换

在字符串到实体转换一文中介绍了Spring核心框架中使用PropertyEditor将任何字符串转换为数字、实体的方法。除了字符串到实体,Spring还提供了更加通用的功能在对象和对象之间进行数据转换。Converter<S, T>Spring的类型转换的基础是Converter<S, T>(以下简称转换器)接口:package org.springframe...

2019-08-04 19:36:10 376

原创 Java main方法继承

java中main方法是可以继承的Test1.javapackage Variables;public class Test1 { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Test1.mai...

2019-08-04 17:35:02 840 1

原创 面试:java数组内的最大组合数?

给定一个任意长度的java数组,求数组内的数能组合出来的最大整数比如说{9,98,123,32} 最大就是 99832123import java.util.Arrays;import java.util.Comparator;class Test { public static void main(String args[]) { int[] arr = ...

2019-08-04 15:33:55 449

原创 Spring核心——字符串到实体转换

笼统的说一个系统主要是由3个部分组成的:执行程序:主要负责处理业务逻辑,对接用户操作。 内部数据:嵌套在源码中的数据,用于指导程序运行。 外部数据:业务数据,外部配置数据。内部数据本身就是程序的一部分,在Java中这些数据通常停留在类的静态成员变量中。而外部数据往往与代码无关,所以对于程序而言要“读懂”它们需要进行一些前置处理。例如用户在前端页面提交的数据我们从RequestContex...

2019-08-02 19:31:11 554

原创 Java 获取本机IP和Mac以及网卡信息

1.获取局域网ip和mac(如果电脑没有直接连接外网),否则获取公网ip2.通过第三放获取公网ippublicclassNetworkUtils{ /** *获取本地IP列表(针对多网卡情况) *@return */ publicstaticMap<String,Object>getLocalInetMac(){ Map<St...

2019-08-02 17:14:31 701

原创 Spring核心——数据校验

在Java数据校验详解中详细介绍了Java数据校验相关的功能(简称Bean Validation,涵盖JSR-303、JSR-349、JSR-380),本文将在Bean Validation的基础上介绍Spring框架提供的数据校验功能。Spring提供的数据校验功能分为2个部分,一个是Spring自定义的数据校验功能(以下称为Spring Validation),一个是符合Bean Vali...

2019-08-01 20:20:43 269

原创 Tomcat 虚拟主机或二级域名配置

基于虚拟目录的项目主机配置在Tomcat中虚拟目录默认是webapps,但是对于项目位置,我们也可以自行设置Context来实现,一个Host下可以设置多个Context;<Hostname="localhost"appBase="webapps"unpackWARs="true"autoDeploy="true"xmlValidation="false"xmlName...

2019-08-01 17:59:53 219

原创 Java http数据加密和文件上传

一,数据加密1.org.apache.commons.codec.digest.DigestUtils提供了,md5,Hex,Sha等不可逆算法加密publicstaticStringMD5(Stringsrc){ returnDigestUtils.md5Hex(src);} publicstaticStringsha256Hex(Stringsr...

2019-08-01 17:11:04 588

原创 java使用ClassLoader动态加载jar,zip文件

java ClassLoader的使用publicclassMain{publicstaticvoidmain(String[]args){URL[]urls=newURL[]{};MyClassLoaderclassLoader=newMyClassLoader(urls,null);...

2019-07-31 15:21:59 373

原创 java注解的基本原理和编程实现

java 1.5开始引入了注解和反射,正确的来说注解是反射的一部分,没有反射,注解无法正常使用,但离开注解,反射依旧可以使用,因此来说,反射的定义应该包含注解才合理一些。当然,这只是个人想法,至于java官方为什么这么泾渭分明不得而知,最重要的是如何使用注解。注解的功能分为2部分: 作为特定的标记 额外信息的载体 >>>>定义一个Us...

2019-07-30 18:04:35 117

原创 比较:instanceOf和Class.isInstance(obj)

一.常用Java类检测方法[1] instanceOf 运算符instanceOf是运算符只被用于对象引用变量,检查左边对象是不是右边类或接口的实例化。如果被测对象是null值,则测试结果总是false。[2] Class<?>.isInstance(Object obj)方法isInstance方法,这个方法与instanceof等价,其中obj是被测试的对象或者变量...

2019-07-30 17:17:38 746

原创 Java数据校验详解

一切从元编程开始一个健壮的系统都要对外部提交的数据进行完整性、合法性的校验。即使开发一个不面对最终用户的工具包,也需要对传入的数据进行缜密的校验来防止引发底层难以追踪的问题。各路大神当然也会注意到这个问题,所以在“元编程”(见JSR250与资源控制)提出之后相续提交了JSR-303、JSR-349以及JSR-380来完善使用注解进行数据校验的机制,这三个JSR也被称为Bean Validati...

2019-07-30 15:27:01 1645

原创 MySQL数据高级查询之连接查询、联合查询、子查询

连接查询连接查询: 将多张表(>=2)进行记录的连接(按照某个指定的条件进行数据拼接)。连接查询的意义: 在用户查看数据的时候,需要显示的数据来自多张表.连接查询: join, 使用方式: 左表 join 右表;左表: 在join关键字左边的表;右表: 在join关键字右边的表连接查询分类:SQL中将连接查询分成四类:内连接,外连接,自然连接和交叉连接交叉连接:交叉连接...

2019-07-29 20:33:09 191

原创 如何成为月薪30k的程序员?

人生是需要规划的,作为程序员的我们,写了很多代码,也小小的改变了世界,也许我们应该好好的改变一下自己的人生。那么程序员如何保持和提高自己的核心竞争力,成为一个年薪30W+的程序员,这里给大家的一些建议。兴趣决定你的发展有一部分人选择当程序员,并不是因为喜欢,他们可能是觉得IT行业的薪水比其他行业高。只有保持兴趣,做喜欢的事,才能最大可能发挥一个人的潜能和热情,会最快速地通向成功成就自己...

2019-07-29 17:46:37 600

原创 Spring核心——资源管理

Resource——资源对于一个联机事务型系统(业务系统)来说,所依赖的外部运行信息主要有2个来源:数据项和资源项。数据项的存放位置通常是使用各种关系性或NoSql数据库,而资源项通常是使用文件、网络信息的方式来存储。早在JDK1.0的时代Java就已经提供了本地资源和网络资源的读取功能——java.net.URL。他可以同时管理本地资源(操作系统资源)以及网络资源,如下面这个例子:...

2019-07-29 17:12:27 148

原创 精讲Redis内存模型

前言Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分。我们使用Redis时,会接触Redis的5种对象类型(字符串、哈希、列表、集合、有序集合),丰富的类型是Redis相对于Memcached等的一大优势。在了解Redis的5种对象类型的用法和特点的基础上,进一步了解Redis的内存模型,对Redis的使用有...

2019-07-29 14:55:49 108

原创 看完这篇秒懂java泛型通配符的区别

1. 先解释下泛型概念泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。Java语言引入泛型的好处是安全简单。在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,...

2019-07-27 20:29:06 517

原创 MySQL 8.0版本连接报错:Could not create connection to database server.

准备搭建一个Spring Boot 组合mybatis的项目,数据库采用的是MySQL 8.0.11按照以往的配置,使用插件mybatis-generator-maven-plugin生成代码时,一直报错Could not create connection to database server.如下:[INFO] Scanning for projects...[INFO] [INFO...

2019-07-27 16:06:58 730

原创 Spring核心——全局事件管理

ApplicationContext是一个Context策略(见上下文与IoC),他除了提供最基础的IoC容器功能,还提供了MessageSource实现的国际化、全局事件、资源层级管理等等功能。本文将详细介绍Spring核心模块的事件管理机制。Spring核心模块的事件机制和常规意义上的“事件”并没有太大区别(例如浏览器上的用户操作事件)都是通过订阅/发布模式实现的。Spring事件管理...

2019-07-27 14:34:27 163

原创 springMVC的工作原理和机制

工作原理上面的是springMVC的工作原理图:1、客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器将请求转交给DispatcherServlet.2、DipatcherServlet接收到这个请求之后将根据请求的信息(包括URL、Http方...

2019-07-26 16:57:37 140

原创 Spring核心——MessageSource实现国际化

Spring的国际化在上下文与IoC对ApplicationContext以及Context相关的设计模式进行了介绍。ApplicationContext作为一个Context在应用的运行层提供了IoC容器、事件、国际化等功能接口。Spring的国际化(i18n)功能是通过MessageSource接口实现的,他提供了MessageSource::getMessage方法从预设的资源中获取...

2019-07-26 14:52:11 405

原创 Redis网络架构及单线程模型

这篇博客主要介绍我对Redis网络层架构以及线程模型的一些了解,希望能对大家有所帮助。Redis网络基础架构网络编程离不开Socket,网络I/O模型最常用的无非是同步阻塞、同步非阻塞、异步阻塞、异步非阻塞,高性能网络服务器最常见的线程模型也就是基于EventLoop模式的单线程模型。我们看看Redis的网络架构是怎么样的:Redis基础组建结构这里解释下上图涉及的组件,...

2019-07-25 19:23:15 123

原创 Spring核心——资源数据管理

在Profile管理环境一文中介绍了环境的概念以及Spring Profile特性控制Bean的添加。本文将进一步介绍Spring管理和控制操作系统变量、JVM变量和Java标准资源(properties文件)的相关功能。PropertySource与优先级在整个Jvm运行期间,我们可以随时随地获取到2个与环境相关的参数:package chkui.springcore.exampl...

2019-07-25 16:42:41 100

原创 Java使用ThreadFactory来创建新的线程

首先来构建线程封装类WorkThread,该类的功能主要是为了能够更好的管理线程而创建的publicclassWorkThreadextendsThread{ privateRunnabletarget;//线程执行目标 privateAtomicIntegercounter; publicWorkThread(Runna...

2019-07-24 20:17:39 390

原创 JAVA和JVM运行原理

JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序。编译器负责把Java程序转成Class文件,方便JVM来读取它。JVM是java虚拟机,其实它就是解释器,把Class文件中的命令转成某种平台的命令,比如把Java命令转成Windows下的命令,然后Java程序就...

2019-07-24 15:03:11 161

原创 Spring核心——Profile管理环境

抽象环境的概念在介绍Spring核心模块为运行环境管理提供的功能之前,咱们先得解释清楚“运行环境”是什么。码砖早年,对上下文(Context)、环境(Environment)一直都是傻傻分不清楚,感觉2者都是放了一堆参数在里面,貌似并没有多大区别。后来才慢慢摸清楚这2个词的套路。上下文(Context)是用来处理分层传递的,不清楚的可以看看上下文与IoC一文关于ApplicationCon...

2019-07-23 20:36:55 168

原创 一文秒懂MySQL中使用explain查询SQL的执行计划

1、什么是MySQL执行计划 要对执行计划有个比较好的理解,需要先对MySQL的基础结构及查询基本原理有简单的了解。 MySQL本身的功能架构分为三个部分,分别是 应用层、逻辑层、物理层,不只是MySQL ,其他大多数数据库产品都是按这种架构来进行划分的。应用层,主要负责与客户端进行交互,建立链接,记住链接状态,返回数据,响应请求,这一层是和客户端打交道的。...

2019-07-23 14:41:01 198

原创 你知道Redis避不开的五种数据结构吗?

Redis 中有 5 种数据结构,分别是字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set),因为使用 Redis 场景的开发中肯定是无法避开这些基础结构的,所以熟练掌握它们也就成了一项必不可少的能力。本文章精要地介绍了 Redis 的这几种数据结构,主要覆盖了它们各自的定义、基本用法与相关要点。字符串类型字符串是 Redis 中的最...

2019-07-22 20:15:31 418

原创 JAVA:最好的锁是无锁

关于synchronized众所周知,JAVA中最简单的加锁方法是用关键字synchronized,我们可以使用这个关键字将一个方法变成线程安全的,也可以将一个代码块变成线程安全的,这样子我们不需要再担心多线程同时执行到这段代码会引发的并发问题。同时配合方法wait,notify和notifyall可以很好的实现多线程之间的协作,比如某个线程因为需要等待一些资源,于是调用wait方法将自己设置...

2019-07-22 16:47:04 143

原创 Spring核心——@Configuration与混合使用

@Configuration在介绍Spring核心容器的系列文章中已经多次出现这个注解,从使用的角度来说可以把他理解为XML配置中的<beans>标签,但是两者肯定是不等价的。在<beans>标签中除了使用<bean>声名Bean以外,还有各种<context>标签来扩展功能,比如<context:component-scan/>...

2019-07-22 14:26:00 510

原创 Spring核心——纯Java运行与@Bean

3.0新增容器启动方法在3.0之前的Spring核心框架中,我们启动一个Spring容器必须使用一个XML文件。而到了3.X之后的版本Spring为创建容器新增了一个入口类——AnnotationConfigApplicationContext。AnnotationConfigApplicationContext和过去的ClassPathXmlApplicationContext、File...

2019-07-20 17:00:21 108

原创 MySql索引算法解析

刚开始学习的时候,百度去查,但发现好多说得太复杂不好理解,结合各个文章总结一下(建议大概看文字,不理解不要紧,然后再看图的执行步骤然后在结合文字,这样一切就清晰好多)B-tree,B是balance,一般用于数据库的索引。使用B-tree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度。而B+tree是B-tree的一个变种,大名鼎鼎的MySQL就普遍使用B+tree实现其索...

2019-07-20 14:47:44 107

空空如也

空空如也

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

TA关注的人

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