自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java编程思想(七)第20章-注解

目录:Java编程思想(一)第1~13、16章Java编程思想(二)第14章-类型信息Java编程思想(三)第15章-泛型Java编程思想(四)第17章-容器深入研究Java编程思想(五)第18章-Java IO系统Java编程思想(六)第19章-枚举类型Java编程思想(七)第20章-注解Java编程思想(八)第21章-并发  注解(也被称为元数据)为我们在代码中添加信息提供了一种形式化...

2018-09-30 12:56:13 220

原创 Java编程思想(六)第19章-枚举类型

目录:Java编程思想(一)第1~13、16章Java编程思想(二)第14章-类型信息Java编程思想(三)第15章-泛型Java编程思想(四)第17章-容器深入研究Java编程思想(五)第18章-Java IO系统Java编程思想(六)第19章-枚举类型Java编程思想(七)第20章-注解Java编程思想(八)第21章-并发19.4 values()的神秘之处  通过反编译枚举类,v...

2018-09-30 12:55:19 201

原创 Java编程思想读书笔记(一)第1~13、16章

目录:Java编程思想(一)第1~13、16章Java编程思想(二)第14章-类型信息Java编程思想(三)第15章-泛型Java编程思想(四)第17章-容器深入研究Java编程思想(五)第18章-Java IO系统Java编程思想(六)第19章-枚举类型Java编程思想(七)第20章-注解Java编程思想(八)第21章-并发第1章 对象导论1.1 伴随多态的可互换对象  面向对象...

2018-09-30 12:42:54 380

原创 Java 中的代理模式及动态代理

代理代理是英文 Proxy 翻译过来的。我们在生活中见到过的代理,大概最常见的就是朋友圈中卖面膜的同学了。她们从厂家拿货,然后在朋友圈中宣传,然后卖给熟人。按理说,顾客可以直接从厂家购买产品,但是现实生活中,很少有这样的销售模式。一般都是厂家委托给代理商进行销售,顾客跟代理商打交道,而不直接与产品实际生产者进行关联。所以,代理就有一种中间人的味道。接下来,我们说说软件中的代...

2018-09-30 12:25:51 109

转载 程序员职业规划指南

一、构建完整的知识体系俗话说:学无止境,当然这里的学习并不仅仅指书上的知识、还有生活中、互联网上的。知识广义上来讲可以分为五类:数据、信息、知识、才能和智慧。数据经过整理变成信息,信息能解决某个问题就是知识,知识通过反复实践形成才能,才能融会贯通就是智慧,构建知识体系可以帮助我们提升,在任何情况下稳定高质量的输出,可以更高效地解决遇到的问题,让我们更少的依赖运气,能力水平越高,运气带来的影响就...

2018-09-29 16:33:18 190

原创 Java多线程实现的四种方式

Java多线程实现的方式有四种1.继承Thread类,重写run方法 2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target 3.通过Callable和FutureTask创建线程 4.通过线程池创建线程 前面两种可以归结为一类:无返回值,原因很简单,通过重写run方法,run方式的返回值是void,所以没有...

2018-09-29 15:18:49 146

原创 Redis的Hash用法

Redis的key value键值对模式不变,但value是一个键值对。1.hset  key value(key value) :向Hash中存入值。2.hget key value(key):取出Hash中key的值。3. hmset :向Hash表中存入该对象的多个属性值。注意:当向同一个对象的同一个属性赋多个值时,会覆盖。不同属性时,会拼接。4.hmget :获取H...

2018-09-29 13:29:51 1530

原创 Linux基础命令——文件处理命令

1)filefile用来判断文件类型2)mkdir建立目录,根据参数不同,可建立上层目录。上图中显示已经建立fst。3)find用于寻找目录下的文件,find/则是在全硬盘范围内搜寻,在find后面加上路径可以在指定路径内搜索文件。上图是在home文件中寻找和fst下的文件。4)ls用于显示目录内容,最简单的应用如下:后面可以加上各种参数可以显示各种内容。5)diff...

2018-09-29 10:10:50 145

原创 如何将在Windows系统上写好的项目部署到Linux服务器上?

1.导出数据库脚本文件.sql   2.数据库发布在SQLyog上,连接数据库:设置主机地址:Linux系统中的ip 用户名密,将导出的sql脚本在新打开的数据库中进行执行即可。     3.导出项目文件格式为.war 修改连接数据库文件中url地址为Linux中ip地址   4.上传项目文件到Linux中:Alt+P ...

2018-09-28 15:16:54 10622 1

原创 Java 中的 ==, equals 与 hashCode 的区别与联系

一、概述1、概念== : 该操作符生成的是一个boolean结果,它计算的是操作数的值之间的关系equals  : Object 的 实例方法,比较两个对象的content是否相同hashCode : Object 的 native方法 , 获取对象的哈希值,用于确定该对象在哈希表中的索引位置,它实际上是一个int型整数二、关系操作符 ==1、操作数的值基本数据类型变...

2018-09-28 15:00:02 133

原创 设计一个一百亿的计算器

首先要明白这道题目的考查点是什么- 一是大家首先要对计算机原理的底层细节要清楚、要知道加减法的位运算原理和知道计算机中的算术运算会发生越界的情况 二是要具备一定的面向对象的设计思想。 首先,计算机中用固定数量的几个字节来存储的数值,所以计算机中能够表示的数值是有一定的范围的 为了便于讲解和理解,我们先以byte 类型的整数为例,它用1个字节进行存储,表示的最大数值范围为-12...

2018-09-28 14:21:58 180

原创 JavaScript 原生数组的用法

数组是值的有序集合,每个值叫做一个元素,而每个元素在数组中有一个位置,以数字表示,称为索引。JavaScript 数组是无类型的,也就意味着任何类型都可以放进数组,可以有一种类型,也可以有多种类型数组方法push() 和 pop()允许将数组当做栈一样来使用,两个方法都修改并替换原数组而非生成一个修改后的新数组。push()描述:向数组末尾添加一个或多个元素参数:至少一个元素返...

2018-09-25 11:09:35 102

原创 ORACLE分析函数

1、列转行函数listagg():这是一个Oracle的列转行函数:LISTAGG()实例1:with HB_MEDICAL as(  select '一次' DAYTIME, '2片' MEDICALNUM ,'20131022001' VISITCODE,'珍菊降压片' MEDICAL from dual union all  select '二次' DAYTIME, '3片'...

2018-09-23 08:32:21 409

原创 扫码登录实现原理

今天说一说现在比较流行的扫码登录的实现原理。需求介绍首先,介绍下什么是扫码登录。现在,大部分同学手机上都装有qq和淘宝,天猫等这一类的软件。而开发这些app的企业,都有他们相对应的网站。为了让用户在使用他们的网站时,登录更加方便和安全。这些企业提供了, 使用手机,扫一扫,就可以登录的服务。网页登录时的效果如下:有很多小伙伴可能会感到很神奇,网页上只是显示了个二维码,它怎么就知道是哪个手机...

2018-09-22 23:26:35 2235

原创 单点登录原理与简单实现

一、单系统登录机制1、http无状态协议web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求,必须鉴别浏览器...

2018-09-22 23:25:46 119 1

原创 如何成为一位「不那么差」的程序员

前言已经记不清有多少读者问过:博主,你是怎么学习的?像我这样的情况有啥好的建议嘛?也不知道啥时候我居然成人生导师了。当然我不排斥这些问题,和大家交流都是学习的过程。因此也许诺会准备一篇关于学习方面的文章;所以本文其实准备了很久,篇幅较长,大家耐心看完希望能有收获。以下内容仅代表我从业以来所积累的相关经验,我会从硬技能、软实力这些方面尽量阐述我所认为的 “不那么差的程序员” 应当做...

2018-09-22 23:24:16 119

原创 什么是线程安全,你真的了解吗?

我们整天说线程安全,但是你对什么是线程安全真的了解嘛?说真的,我之前真的是了解甚微,那么我们今天就来聊聊这个问题。再说什么是线程安全之前我们先来聊聊什么是进程。1、什么是进程?单独运行的程序就是一个独立的进程,进程之间是相互独立存在的。QQ、酷狗播放器、电脑管家等等都是独立的进程。2、什么是线程?上面简单的说了一下什么是进程,进程想要执行任务需要依赖线程,换句话说就是进程中...

2018-09-22 23:23:06 161

原创 手写一个迷你版Spring MVC框架

前期准备我这里要写的是一个迷你版的Spring MVC,我将在一个干净的web工程开始开发,不引入Spring,完全通过JDK来实现。我们先来看一眼工程:工程代码结构第一:在annotation包下,我将提供自定义的注解,为了方便理解,就和Spring MVC保持一致。第二:为了模拟Spring MVC的方法调用链,我这里提供Controller/Service/Dao层进行...

2018-09-22 23:20:00 113

原创 Java线程的6种状态及切换(透彻讲解)

Java中线程的状态分为6种。1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态...

2018-09-22 23:18:29 141

原创 一行代码完成Java的Excel读写

前段时间在 github 上发现了阿里的 EasyExcel 项目,觉得挺不错的,就写了一个简单的方法封装,做到只用一个函数就完成 Excel 的导入或者导。刚好前段时间更新修复了一些 BUG,就把我的这个封装分享出来,请多多指教。附上源码:https://github.com/HowieYuan/easyexcel-method-encapsulationEasyExcelEasy...

2018-09-22 23:15:56 189

原创 深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接

1、内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符)。包括相等联接和自然联接。     内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的所有行。       2、外联接。外联接可以是左向外联接、右向外联接或完整外部联接。     在 FROM子句中指定外联接时,可以由下列几组关键字中的...

2018-09-22 23:09:58 223

原创 高并发场景下的缓存有哪些常见的问题?

一、缓存一致性问题当数据时效性要求很高时,需要保证缓存中的数据与数据库中的保持一致,而且需要保证缓存节点和副本中的数据也保持一致,不能出现差异现象。这就比较依赖缓存的过期和更新策略。一般会在数据发生更改的时,主动更新缓存中的数据或者移除对应的缓存。 二、缓存并发问题缓存过期后将尝试从后端数据库获取数据,这是一个看似合理的流程。但是,在高并发场景下,有可能多个请求并发的去从数据库...

2018-09-21 13:57:35 192

原创 Java Web学习总结(八)——HttpServletResponse对象(二)

一、HttpServletResponse常见应用——生成验证码1.1、生成随机图片用作验证码  生成图片主要用到了一个BufferedImage类,  生成随机图片范例: 1 package gacl.response.study; 2 3 import java.awt.Color; 4 import java.awt.Font; 5 import java...

2018-09-21 10:25:52 105

原创 Java Web学习总结(七)——HttpServletResponse对象(一)

 Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。request和response对象即然代表请求和响应,那我们要获取客户机提交过来的数据,只需要找request对象就行了。要向客户机输出数据,只需要找response对象就行了。一、HttpServletResponse对象介绍    HttpS...

2018-09-21 10:24:35 304 2

原创 Java Web学习总结(六)——Servlet开发(二)

 一、ServletConfig讲解1.1、配置Servlet初始化参数  在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数。例如:  <servlet> <servlet-name>ServletConfigDemo1</servlet-n...

2018-09-21 10:21:21 143

原创 Java Web学习总结(五)——Servlet开发(一)

上一篇:Java Web学习总结(四)——Http协议一、Servlet简介  Servlet是sun公司提供的一门用于开发动态web资源的技术。  Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:  1、编写一个Java类,实现servlet接口。  2、把开发好的Java类部署到w...

2018-09-21 10:01:05 136

原创 Java Web学习总结(四)——Http协议

上一篇:JavaWeb学习总结(三)——Tomcat服务器学习和使用(二)一、什么是HTTP协议  HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客...

2018-09-21 09:59:08 125

原创 JavaWeb学习总结(三)——Tomcat服务器学习和使用(二)

JavaWeb学习总结系列:JavaWeb学习总结(一)——JavaWeb开发入门JavaWeb学习总结(二)——Tomcat服务器学习和使用(一)一、打包JavaWeb应用  在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包。 范例:将JavaWebDemoProject这个JavaWeb应用打包成war包   执行完之后,就可以得到一个...

2018-09-21 09:56:37 183 2

原创 JavaWeb学习总结(二)——Tomcat服务器学习和使用(一)

JavaWeb学习总结系列:JavaWeb学习总结(一)——JavaWeb开发入门一、Tomcat服务器端口的配置  Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件。  如果想修改Tomcat服务器的启动端口,则可以在server.xml配置文件中的Connector节点进行的端口修改例如:将Tomcat服务器的启动端口由默认的8...

2018-09-21 09:55:20 99

原创 JavaWeb学习总结(一)——JavaWeb开发入门

一、基本概念1.1、WEB开发的相关知识  WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。  Internet上供外界访问的Web资源分为: 静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。 动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。...

2018-09-21 09:54:06 180

原创 mybatis中resultMap配置细则

resultMap算是mybatis映射器中最复杂的一个节点了,能够配置的属性较多,我们在mybatis映射器配置细则这篇博客中已经简单介绍过resultMap的配置了,当时我们介绍了resultMap中的id和result节点,那么在resultMap中除了这两个之外,还有其他节点,今天我们就来详细说说resultMap中的这些节点。 如果小伙伴对mybatis尚不了解,建议先翻看博主前面几篇...

2018-09-20 15:27:05 2144

原创 mybatis中的缓存问题

关于mybatis基础我们前面几篇博客已经介绍了很多了,今天我们来说一个简单的问题,那就是mybatis中的缓存问题。mybatis本身对缓存提供了支持,但是如果我们没有进行任何配置,那么默认情况下系统只开启了一级缓存,一级缓存就是同一个SqlSession执行的相同查询是会进行缓存的,OK,那么今天我们就来看看这些缓存,并简单验证下。系统默认开启了一级缓存这个缓存系统默认情况下是开启的,...

2018-09-20 15:24:11 215 2

原创 mybatis中的动态SQL

在实际开发中,数据库的查询很难一蹴而就,我们往往要根据各种不同的场景拼接出不同的SQL语句,这无疑是一项复杂的工作,我们在使用mybatis时,mybatis给我们提供了动态SQL,可以让我们根据具体的业务逻辑来拼接不同的SQL语句。OK,那么我们今天就来看看如何使用mybatis中的动态SQL。 mybatis中的动态SQL主要包含如下几种元素:if、choose、when、otherwise...

2018-09-20 15:23:18 102

原创 Spring中bean实例化的三种方式

之前我已经有好几篇博客介绍Spring框架了,不过当时我们都是使用注解来完成注入的,具体小伙伴可以参考这几篇博客(Spring&SpringMVC框架案例)。那么今天我想来说说如何通过xml配置来实例化bean,其实也很简单。 使用xml配置来实例化bean共分为三种方式,分别是普通构造方法创建、静态工厂创建、实例工厂创建,OK,那么接下来我们来分别看看这几种方式。普通构造方法创建...

2018-09-20 15:21:25 192

原创 Spring中属性注入的几种方式以及复杂属性的注入

在Spring框架中,属性的注入我们有多种方式,我们可以通过构造方法注入,可以通过set方法注入,也可以通过p名称空间注入,方式多种多样,对于复杂的数据类型比如对象、数组、List集合、map集合、Properties等,我们也都有相应的注入方式。 OK,接下来我们就来看看这么多不同的注入吧!三种属性注入方式构造方法注入构造方法注入和p名称空间注入这两种方式我们在开发中用的并不算多,...

2018-09-20 15:20:04 182

原创 mybatis映射器配置细则

前面三篇博客我们已经多次涉及到映射器的使用了,增删查基本上都用过一遍了,但是之前我们只是介绍了基本用法,实际上mybatis中映射器可以配置的地方还是非常多,今天我们就先来看看映射器还有哪些需要配置的地方,用好这些配置,可以让我们的mybatis变得非常灵活。如果小伙伴对于mybatis尚不了解可以先参考前面三篇博客(初识mybatis/初识mybatis(二)/mybatis常用配置)否则小伙伴...

2018-09-20 15:00:26 131

原创 mybatis常用配置

前面两篇博客我们简单介绍了mybatis的使用,但是在mybatis的配置问题上我们只是使用了最基础的配置,本文我们就来说说其他一些常用的配置。如果小伙伴对mybatis尚不了解,可以先参考这两篇博客初识mybatis/初识mybatis(二)。老司机请略过。由于本文算是初识mybatis/初识mybatis(二)两篇博客的补充,所以强烈建议没有mybatis基础的小伙伴一定要先看这两篇博客。...

2018-09-20 14:58:24 136

原创 初识mybatis(二)

上篇博客我们介绍通过Java代码来创建mybatis的配置文件,港真,这种方式看起来有意思实际在开发中用的并不多,mybatis的配置还是以xml配置为主,本文我们就来看看如何通过xml文件来配置mybatis。关于mybatis的一些基础知识小伙伴们可以参考这篇博客 初识mybatis。另外,上篇博客中,小伙伴们也看到了通过添加jar包的方式来搭建mybatis环境太过于麻烦,so,本文我们还是...

2018-09-20 14:56:59 186

原创 初识mybatis

说道JavaWeb,很多人都知道SSH,这里的H代表了hibernate,这是一个数据库访问框架,hibernate在Java开发中的地位也是相当高,众所周知的JPA标准就是由hibernate主导完成的。然而,数据库访问框架除了hibernate之外,还有另外一个大名鼎鼎的数据库框架,那就是mybatis,mybatis的前身ibatis早在2001年就发布了,那么这里我不想过多的去比较这两个东...

2018-09-20 14:55:04 122

原创 正则表达式总结

1.有关校验字符的表达式   1.汉字:^[\u4e00-\u9fa5]{0,}$ 2 英文和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$ 3 长度为3-20的所有字符:^.{3,20}$ 4 由26个英文字母组成的字符串:^[A-Za-z]+$ 5 由26个大写英文字母组成的字符串:^[A-Z]+$ ...

2018-09-20 10:45:59 117

空空如也

空空如也

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

TA关注的人

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