自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于DoubleCheck的懒汉式单例--指令重排

传统方式的懒汉式单例public class Singleton { //构造私有 private Singleton (){}; private static Singleton instance = null; public synchronized static Singleton getInstance(){ if(instanc...

2019-04-11 11:19:06 542

原创 页面静态化

浏览器向服务器每次发送请求都比较耗费资源和时间,当访问量特别大的时候会对服务器造成很高的压力,这个时候页面静态化就可以起到减少服务器的压力。页面静态化 -- 把一些变化很少的动态页面,通过技术转化为静态页面。静态页面的可以被缓存在浏览器中,第一次请求需要发给服务器,后面的再次请求(在缓存时间内),只需要在本地浏览器缓存中读取静态页面并展示。浏览器缓存:当第一次请求,服务器如果返回一...

2019-03-26 21:02:41 226

原创 ehcache-3.x版本实战

什么是缓存呢?我们先来看一个例子实现一个斐波那契数列--递归 public static int fbnq(int n){ if(n==1 || n ==2){ return 1; }else{ return fbnq(n-2)+fbnq(n-1); } }如果我们使用debug调...

2019-03-23 23:23:34 2076

原创 windows下redis实战总结

Redis-内存数据库、NoSQL数据库、键值数据库windows下redis客户端操作redis命令行启动服务器:如果是解压版的进入解压路径下 执行redis-server关闭服务器可以直接关闭窗口或者 ctrl + c 也可以设置后台进程命令行启动客户端:如果是解压版的进入解压路径下 执行redis-cliredis数据库的数据结构String -> 字符串...

2019-03-18 20:37:28 305

原创 jwt鉴权

背景:一个普通项目配置在一台服务器上并发性并不高,但是像一些大型的电商 门户网站,每一天的访问量过千万,也就是说在同一时间可能会有近万人访问。一台服务器的并发量就难以满足。这个时候人们 就想到了利用分布式架构。采用集群的方式来提高并发性。一般会配一个nginx集群来进行反向代理,使得多个服务器上分担的压力均衡,达到负载均衡。如图这个时候就存在一个问题,传统方式我们登陆注册需要将登陆...

2019-03-16 22:53:20 628

原创 结合动态代理技术学习SpringAop实现切面编程

结合一个例子利用动态代理技术和SpringAop实现需求需求:为我的UserService类中的每一个方法加上一个计时器最初的实现是为每一个类添加一段代码,这样看起来代码的冗余度特别大静态代理实现在使用JDK提供动态代理之前我们先利用静态代理技术实现这个需求静态代理需要我们自己创建代理类具体代码如下:创建UserService接口以及他的实现类及目标类UserSer...

2019-02-18 01:33:58 235

原创 记一次手动实现mybatis框架findAll功能

Mybatis是基于持久层开发的框架,它内部封装了JDBC,开发者不需要将精力放在数据库连接这方面,只需要把关注点放在sql语句的编写上。Mybatis通过xml或者注解的方式将要执行的各种statement对象配置起来,并且通过java对象和statement中的sql的动态参数进行映射生成sql语句。最后由Mybatis框架执行sql语句并将结果集对象通过反射技术封装成javabean对象返...

2019-01-30 17:04:14 3763 1

原创 在idea部署Tomcat设置图片虚拟访问路径

html页面中img标签中src直接写入图片相对路径的时候会出现找不到图片路径的情况数据库中写入的是图片的相对路径,我的图片是放在D盘下的projectdev文件夹下,直接在src中写入如下:这样访问实际上的是项目目录下的upload中文件夹下的图片,很显然是找不到的,如何解决?提供一个解决方法:直接在tomcat edit中设置,具体如下: 最后记...

2019-01-26 22:28:36 3121 1

原创 idea中maven项目搭建及服务器部署

服务器配置及后台项目搭建两种方式配置:一种是普通的web项目,另一种是maven项目搭建web后台这里主要总结采用maven搭建web项目:环境准备:jdk8.0IDE---IntelliJ IDEAtomcat 8.5maven 3.3.9IDEA中创建maven项目填写完成直接next创建以后的目录结构如下接下来的操作如下:...

2019-01-08 14:12:08 4389 2

原创 MySQL、JDBC连接、数据库优化

思维导向图 JDBC连接由于PrepareStatement进行数据库操作更为灵活,所以直接选用此对象。首先创建表Student向项目中导入依赖jar包如下: 将其构建进入项目中利用JDBC连接数据库,获取连接对象有两种方式,我们这里先使用直连方式,通过DriverManager获得连接对象具体代码如下: public static void main(S...

2018-12-25 20:46:47 597 2

原创 MySQL基础知识总结

思维导向图  创建表操作create table 表名( 字段名1 类型 (约束条件)[not null][primay key][auto_increament] 字段名2 类型 (约束条件)[unique]); 

2018-12-18 15:42:20 89

原创 java Stream API 配合Lambda表达式--JDK1.8新特性

思维导图学习感悟JDK1.8以后对集合操作提供了一些新的API,使用起来比较便利,除了代码可读性差一点(即lambda表达式),个人感觉值得学习。 例如下面分组需求:一个集合中存放多个学生对象,我需要根据学生性别分组,学生类如下:package org.ymh.demo;public class Student { private String name; pri...

2018-12-03 21:34:34 174 1

原创 java常见的设计模式及其代码实现

常见的设计模式单例设计模式该设计模式要求在程序运行中,同一对象只能在JVM中存在一个实例。其实这一点很简单实现,只要我们创建类的时候,将构造方法私有,外界无法创建对象。(不保证特殊情况下破坏单例的状况,如反射技术,序列化和反序列化)但是构造方法私有了,外界怎么获得呢?这个时候应该想到之前学过的许多工厂类(例如线程池Executors)的设计思路,在类中首先创建对象,再通过对外...

2018-11-26 17:16:03 4634

原创 Java多线程及线程池

多线程线程的引入提问:我打开了一个QQ音乐,又打开了一个游戏,请问我打开了两个线程吗?回答:概念理解错误,你其实打开是两个进程,为什么呢,请看概念什么是进程进程是正在执行的程序,是系统调用资源和进行资源分配的基本单位。比如所说的QQ音乐,和一个游戏,这就是两个正在执行的程序。我们的操作系统都是多进程的。继续提问:早期的计算机是单核计算机,但是为什么我同时打开两个程序,感觉基...

2018-11-19 16:59:56 125

原创 IO流总结

IO流继承体系图普通字节流复制文件模板public class IODemo3 { public static void main(String[] args) throws IOException { FileInputStream in = new FileInputStream("D:\\video01.avi");//封装输入流 FileO...

2018-11-14 18:13:28 161

原创 java异常处理及文件操作

异常继承体系常见的运行期异常 NullPointerException:空指针异常IllegalArgumentException:非法才参数异常ArithmeticException:一个整数“除以零”时抛出异常IndexOutOfBoundsException:数组越界异常ArrayStoreException:数组存储错位类型对象时抛出此异常。文件案例...

2018-11-14 17:34:21 447

原创 Java中的Collection集合及其Map集合总结

HashSet集合保证元素唯一提问:传统方式保证集合或者数组元素唯一的方法是什么?回答:通过重写equals()方法,及存一个元素,让它与之前的元素做比较,相同就不存,不相同就存储,但是这样效率简直太低了,如果集合(数组)中有1000个元素,当存入第1001个元素就要分别与之前的元素作比较。追问:那有什么办法吗? 回答:你仿佛忘记了Set集合它的一个子类HashSet类,它底层...

2018-11-06 22:58:53 321

原创 Java集合总结,泛型机制,可变参数

List实现类的区别及适用场景  底层实现 优缺点 线程是否安全 效率 适用场景 ArrayList 数组 查询易,增删难 否 高 单线程,多查询,少增删的程序 Vector 数组 查询易,增删难 是 低 多线程,多查询,少增删的程序 LinkdeList 链表 查询难,增删易...

2018-10-31 16:19:47 408

原创 正则表达式(模式器,匹配器)及java中的日期表示

正则表达式正则表达式:用于匹配某些特定字符串的一个规则。没有学会使用正则表达式的时候,我们遇到过这么一个需求-----校验用户名是否合法?具体要求如下:1)用户名长度必须在6到15之间2)必须是字母数字组合非正则具体实现如下public class Regex { public static void main(String[] args) { ...

2018-10-29 17:33:35 684

原创 Object类、String类、Arrays类、StringBuffer类、StringBuilder的总结2

补充上一篇文章末尾String类中的一个方法public String substring(int beginIndex, int endIndex)参数:起始位置,与结束位置 int类型返回值:String类型public class Test { public static void main(String[] args) { String s ="ABC...

2018-10-25 14:16:04 138

原创 Object类、String类、Arrays类、StringBuffer类、StringBuilder的总结1

Object类是所有类的顶层父类。 图中漏了一个非常重要的方法,toString()方法,具体用法会在后面代码中详细解释。所有类都默认继承了Object类,所有具有Object类的这些方法,光说不练假把式。上栗子:我创建了一个测试类Test,但是我并没有让他继承Object类,但是默认继承,我就可以调用Object类的非私有修饰的所有方法。equals方法返回值:布...

2018-10-25 13:38:47 166

原创 冒泡排序,选择排序、二分法查找图示以及代码实现

冒泡排序(排序的是数值)请看下面的这个栗子:需要排序的数组arr = {99,88,77,55,66,44};具体排序细节各位客官请看图:代码实现:public class BubbleSort { public static void main(String[] args) { int[] arr = {99,88,77,55,66,44}; ...

2018-10-23 16:28:28 450

原创 javaSE参数传递问题、返回值问题、内部类总结

 思维导图 参数值传递问题之前我们见到方法传参一般传递的都是基本数据类型的参数,比如我要一个int类型,只需要在调用方法的时候传一个int类型的数值就好了。但是当传入参数需要一个引用数据类型,那么该如何考虑呢?类名作为传入参数class Student{ String name="小明"; public void study(){ }}//类名作为...

2018-10-17 17:26:40 186

原创 javaSE之面向对象

面向对象思维导向图 心得体会 java语言开发是面向对象的,它不关心具体的底层实现。之前学C语言,要给一个数组排序,我们首先就要考虑用什么排序,什么排序效率高,如何实现这种排序等等的底层算法。而现在学了面向对象的java语言,我们应该考虑的是java底层为我们封装好了什么方法可以进行数组排序,事实上只需要仔细查阅一下API文档,这个问题便迎刃而解。例如Arrays类中提供了一个so...

2018-10-16 16:27:44 310 1

原创 java中的代码块概述

代码块基本概念什么是代码块?在java中,每个用{}引起来的代码的集合就被称作代码块。代码块的分类代码块可分为局部代码块,构造代码块,静态代码块,同步代码块。局部代码块在方法中定义的,随着方法的调用而加载,方法结束而释放,及早释放,提高内存利用率。public class Test { public static void main(String[] args...

2018-10-15 14:45:15 110

原创 谈一谈java语言中的final关键字

final关键字在java中的应用十分的频繁,而且就我个人而言,我容易把它和static这个关键字混淆,下面来总结一下他的应用范围。final关键字的基本用法1、修饰类凡是被final修饰的类,都是不可以被继承的。如果你有一个需求,需要定义一个类,而这个类不允许被其他类继承的时候,你就可以通过final关键字来实现。请看下面这个例子。public final class Pers...

2018-10-15 14:15:02 251

原创 java关键字static

static关键字有什么用呢?比如我要定义一个person类,这个类中有一个属性是国籍,而我们需要实例化的对象都是中国人,这里就出现一个问题,难道说我每次new一个对象就得为他赋一个中国吗,这样是不是就没有面向对象的感觉了,这个时候就可以用一个静态修饰符static来修饰这个变量,请看下面这个例子:public class Person { private static Stri...

2018-10-06 12:46:36 217

原创 java面向对象知识点总结

面向对象面向对象和面向过程老师总是说学习java一定要有面向对象的思维,那么究竟什么是面向对象呢?首先来总结一下面向过程。C语言一般用的就是面向过程,所谓面向过程开发就是要实现一个功能,需要把功能的每一个步骤和过程一步一步用程序实现了。但是,时间一长我们就会发现,好多代码都似曾相识,每次实现一次都需要重新写一次,这样代码不仅看起来比较繁琐而且冗余度特别大,不易修改和管理。就有人想到...

2018-10-06 12:10:00 1373

原创 javaSE数组的定义遍历总结

数组的基本概念什么是数组呢?数组是用来存放同一类具有相同数据类型的元素的集合。它的出现解决通过定义大量变量接收数据浪费空间的情况。数组的定义方式:数据类型[] 数组名 ;数据类型 数组名[];举个例子,比如我需要定义一个double类型的数组,如下double[] d ;我要定义一个字符串类型的数组String [] s;数组定义了以后,接下来就是给定义的数...

2018-10-05 11:50:07 269

原创 举例解释java中两种循环(for,while)

程序的三大结构是顺序、循环、选择。今天来聊一聊循环。java 中最常用2种循环,一种是for循环,一种是while循环那么为什么要使用循环呢?举个例子。我们比如要在命令行打印5句爱java如何实现?System.out.println("爱java");System.out.println("爱java");System.out.println("爱java");Syst...

2018-10-04 13:34:12 940

原创 写给java培训第二天的自己

经过第一天的融洽的学习,已经基本掌握老师讲课的节奏和方式,学习进度稳定,一天过的超级充实,喜欢这给感觉!加油!下面总结一下今天所学的内容,哈哈第一个知识点,什么是常量,它的分类是什么?常量就是在程序执行过程中其值不发生变化的量。分为字面值常量和自定义常量。字面值常量主要分为字符串常量,整数常量,小数常量,字符常量和布尔常量等。第二个知识点,是进制转换虽说跟java这门语言关系不...

2018-09-23 23:06:45 201

原创 写给像我一样的java初学者

今天我整理了一些在初学java之前应该具备的技能,现在就分享给大家。首先你必须会一些计算机基础。你不要到最后用电脑都编程了几年了,人家问你计算机如何定义,你却说不出。计算机(Computer)全称:电子计算机,俗称电脑。是一种能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。那么计算机由什么组成呢?答案当然是硬件和软件,学java就是在玩软件!还要记住一个概念“没有安装任何软件的计...

2018-09-22 20:06:22 175

原创 使用java图像处理工具Thumbnails制作水印及压缩图片

首先,也是最重要的就是在你的maven项目的pom.xml文件中引入依赖:<dependency> <groupId>net.coobird</groupId> <artifactId>thumbnailator</artifactId> <version>0.4.8</version><

2018-07-10 11:16:47 1485

空空如也

空空如也

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

TA关注的人

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