自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多线程编程总结

实现多线程编程一:继承Thread类,复写父类的run方法,父类引用调用的是子类方法1.继承Thread类2.重写run方法(线程要执行的任务)3.创建并启动(通过start方法)下面以售票例子说明:class SaleTicket extends Thread{//继承Thread方法 private int ticket=100; public void run(){/

2016-12-10 14:22:42 356

原创 重构·改善既有程序的设计总结(代码重构技巧)

重构本来就不是一件应该特别拨出时间做的事情,重构应该随时随地的进行。何时重构?1、重复代码同一个类中有相同的表达式:提炼出重复的代码,然后让两个地方都调用被提炼出来的那一段代码; 两个互为兄弟的子类内含有相同的表达式:提炼出相同代码,将它推入超类内; 两个毫不相干的类中出现:将重复的代码提炼到一个独立的类中。 代码之间相似,并非完全相同:使用模板函数,用方法名统一差异推入超类,子...

2020-09-12 22:00:16 785

原创 多线程编程总结二(包含并发容器和线程池)

关于多线程基础部分内容可以看多线程编程总结。1.看看下面的代码package com.yan.thread;import java.util.concurrent.TimeUnit;public class Account { private String name; private double balance; public synchronize...

2019-07-25 12:07:13 333

转载 Netty基础简介

作者:keep_trying_gogo来源:https://blog.csdn.net/yjp198713/article/details/79309260#bytebuf <link rel="stylesheet" href="https://csdnimg.cn/release/ph...

2019-07-24 10:45:26 865

原创 NIO编程

传统的BIO(blocking I/O)是阻塞的,服务器端:ServerSocket负责绑定IP地址,启动监听端口,然后一直等待着客户端连接,是阻塞的状态;客户端:Socket负责发起连接操作。连接成功后,读和写的操作同样是等待阻塞的。经典模型是来一个客户端,起一个线程,因为主线程要负责监听,要重起一条线程处理客户端请求。NIO(non-blocking I/O)是同步非阻塞。打个比方,客...

2019-07-23 22:59:57 150

原创 5分钟入门Zookeeper集群配置

安装包解压,复制配置文件# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial# synchronization phase can takeinitLimit=10# The number of ticks that can pass betwe...

2019-07-22 13:56:28 140

转载 一起走进动物园管理员——ZooKeeper

作者:汤小洋来源:http://blog.51cto.com/12402007/2331203一、ZooKeeper简介1. ZooKeeper是什么​ Apache ZooKeeper是一个开源的分布式服务框架,为分布式应用提供协调服务,用来解决分布式应用中的数据管理问题,如:配置管理、域名服务、分布式同步、集群管理等官网 https://zookeeper.apache.o...

2019-07-22 13:32:55 314

转载 HBase原理

讨论QQ:1586558083目录系统架构物理存储整体的物理结构StoreFile 和 HFile 结构MemStore 和 StoreFileHbase WAL HLog预写Region 寻址机制老的 Region 寻址方式新的 Region 寻址方式 读写过程 读请求过程 写请求过程RegionServer 工作机制Region 分配RegionServ...

2019-07-20 17:58:53 117

原创 redis持久化

Redis provides a different range of persistence options:The RDB persistence performs point-in-time snapshots of your dataset at specified intervals. the AOF persistence logs every write operation ...

2019-07-18 14:16:34 126

原创 干货安利

今天给大家安利两门极客时间的课程,王争老师的《数据结构和算法之美》和丁奇老师的《mysql实战》。极客时间的课程我买了不少,但是这两本从课程刚上线我就买了,是前google和网易大佬的多年经验分享,真的是干货满满,作者大大很用心。数据结构不仅只是讲纯粹的数据结构,不同于大多的填鸭式,还结合和工程上的应用,学起来知其然知其所以然,学起来轻松,不仅加深记忆点,也真正感受到了数据结构算法的作用、魅力和重...

2019-05-19 12:08:46 177

原创 Hadoop入门·从零搭建hadoop集群

   首先先介绍下集群。就是现在是大数据时代嘛。生活中每天无时无刻都在产生着海量数据,这些数据都是很有价值的,比如分析用户数据可以掌握用户喜好,进行针对推荐之类,医学上分析病人数据可以训练机器人学会看病。那么庞大的数据量用一台机子去计算,无论你的配置有多好,都跟不上撑不住。所以一个任务要有多台机子一起完成,一个任务由多台机子进行计算。这些机子就组成一个集群。而Hadoop中的HDFS模块,也就...

2019-02-10 00:02:39 2682

原创 struts2入门

1.将struts2过滤器添加到web.xml中 struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* 2. 配置struts2的配置文件(在src目录中创建st

2017-02-10 20:53:03 545

原创 MVC演化、理解

我们先不解释什么叫MVC,而是慢慢把项目改进发展成MVC项目来理解它。无论是jsp中嵌入java代码,或者servlet内嵌html都会使代码混乱,不便分工合作和后期开发。我们现在让jsp只负责显示,而代码控制给servlet负责,就是处理请求交给servlet,这样我们就把项目的显示和控制分离开来。以用户注册作为例子,首先要有页面register.jsp输入用户信息,因为jsp只负责显示

2017-02-08 22:24:03 343

原创 依赖注入

控制反转与依赖注入思想什么是控制反转?什么是依赖注入?有一个文章介绍得很好。说一家公司要选择自来水公司,老板先选择自来水公司A,后来又改成自来水B,这样改来改去浪费老板精力,所以就干脆让手下人全权负责,这样控制权就从老板手中转到手下人。这就是控制反转。依赖注入就是控制反转的另一种说法,意思就是现在老板只要伸手要水,水就注入到他手上,至于选择哪个公司的水由张三来确实,在Spring中其实

2017-02-07 15:51:58 394

原创 工厂模式及在项目中的应用

工厂模式分为简单工厂、工厂方法模式和抽象工厂模式。简单工厂顾名思义是最简单的,从一个工厂获取所需的产品类似于factory.getProduct1();或factory.getProduct2(),最经典的运用switch语句。简单工厂要增加产品要修改源码,破坏ocp原则(对扩展开放,修改封闭)工厂方法模式与简单工厂最不一样的是工厂方法模式有工厂接口抽象工厂模式与工厂方法模式最大的

2017-02-06 21:20:16 22374 2

原创 验证类

为了防止页面刷新带来空参提交插入package com.yan.shop.util;import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpServletRequest;public class ValidateUtil { public static boolean validat

2017-01-31 23:00:10 223

原创 反射技术

反射技术可以动态创建实例,即在不知道具体类的情况创建对象,要创建对象就要获取描述对象的字节码对象,而要获取字节码对象要先获取描述字节码对象的Class获取Class对象方式:public static void getClassDemo_1() { Person p=new Person(); Class clazz=p.getClass(); System.out.printl

2017-01-12 17:37:00 232

原创 正则表达式应用

1.匹配    public static void matchDemo(){ String tel="13812341234"; String regex="1[358][0-9]{9}"; boolean b=tel.matches(regex); System.out.println(b); }  这是最常见的2.切

2017-01-12 15:04:35 220

原创 设计模式:单例模式

单例模式是什么?简单来说就是为了保证实例对象唯一。比如中国实行一夫一妻制度,每个人的妻子是唯一的。这个时候就要使用单例模式,只new一次妻子类,需要用的时候通过一个函数(唯一访问点)获取,而不是一直new,那样会有千千万万个妻子,不是原本那个了class Single { private static final Single SINGLE_INSTANCE = new Single();

2016-12-16 14:22:29 450

原创 常见排序算法总结(二)

1.希尔排序思想:希尔排序可以看成是对直接插入排序的一种改进,它不再是相邻的比较,而是隔着一定的增量。隔着一定的距离的数为一组,进行比较排序(使用直接插入排序),比较好了,即为一轮,然后增量减小,继续进行下一轮,当减小到一,则排序结束。

2016-12-05 15:15:02 372

原创 软件工程中重要的思想:至上而下 自下而上

什么是至上而下 自下而上?用一个比喻来说明,好像我要盖一栋楼房。首先我要分析这栋楼房的组成,有窗户,有门,有围墙等。而这些又由木材、水泥、钢筋组成,那么我们要盖这栋楼,先要创造出水泥、木材这些东西,有这些原料我们才能进一步创建出需要的窗户、门、围墙等。进一步再组装成房子。在这个例子中,把一个庞然大物不断细分成小模块,这就是至上而下,而一步步实现这些小模块,进而组装实现大模块这就是自下而上。这思想在

2016-12-05 14:43:17 2911

原创 常见排序算法总结(一)

这里的排序算法指内排序算法,即在内存中排序;所谓排序为部分有序到全局有序的过程,以下排序都以从小到大为例1.直接插入排序思想:好像打扑克牌一样,寻找正确的位置插入public class InSortDemo { public static void main(String[] args) { int a[]={0,46,55,13,42,44,17,05,70};//要定义哨

2016-12-04 20:34:34 287

原创 mybatis入门

1.创建mybatis-config.xml文件,在该文件中完成和数据库的连接设置操作<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">2.根据数据表创建相应的实体类p

2016-11-30 18:27:23 203

原创 jsp知识点归纳

jsp的两种页面跳转方式1 sendRedirect客户端跳转,URL发生改变未执行的代码继续执行。不想则要用return2   服务器端跳转jsp的静态包含和动态包含静态包含:导入文件先编译成html才进行导入(常用)动态包含:不进行任何编译,直接原样导入,在导入后整体编译(致命:重名可能)在不同的页面传递对象setAttribut

2016-11-29 21:05:05 310

原创 JSP实现分页二:用threadlocal

用上篇文章的分页方法,list方法要传参,但我们明显感觉到所传参数只是为了实现分页,和具体方法无关,即和业务逻辑无关,因此我们可以引入threadlocal这个概念,目前我们只需知道,它可以存放一些值,存在threadlocal的值在整个线程中有效,请求响应值有效。如果我们需要将公用数据从页面往下传,如传到DAO,可以考虑用threadloca。1.创建类,可以设置和获取threadlocal

2016-11-29 20:18:15 482

原创 实现JSP分页方法一:手写

1.创建Pager类package com.yan.shop.model;import java.util.List;public class Pager { /** * 当前页码 */private int pageIndex; /** * 每页数目 */private int pageSize; /** * 总共条数 */private int

2016-11-28 14:48:12 1516

原创 Socket网络编程及其通信原理

Socke套接字t的解释是孔、插座的意思。它其实是网络通信提供的一个接口,作用就好像插座,封装了许多细节和操作。我们在编程时直接调用,不用细究它是怎么怎么做的,而侧重于做什么。本篇文章通过讲解socket编程实例进一步讲解它的原理。

2016-06-26 20:20:03 1479

空空如也

空空如也

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

TA关注的人

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