- 博客(43)
- 资源 (3)
- 收藏
- 关注
原创 什么是微服务?
微服务是一种架构模式,将一个复杂的、臃肿的单体应用根据业务拆分成一个个可独立部署的服务,服务与服务之间采用轻量级的通信机制进行交互(通常是基于HTTP的RESTFULL API)来完成一个复杂的业务。 换句话说,在微服务出来之前,一个应用一个war包、一个tomcat、一个mysql数据库解决,并发量高的情况升级硬件或者多部署几个服务,服务端负载均衡,达到高可用。这种架构模式的缺点显而易见! 单体特点 优点:部署简单、技术单一、用...
2020-10-22 21:06:26
451
原创 如何回答Spring事务,回答这几点就行
1、Spring是如何管理事务的? Spring中的事务:是指完成一系列sql操作,需要保证原子性,隔离性,一致性、持久性; 首要目标是保证原子性,要么都执行成功,要么都执行失败。 Spring提供两种事务管理方式: 1)编程式事务,即在代码中手动提交、回滚事务,灵活性比较强,但是维护起来比较困难,更复杂。 几个比较重要的接口:...
2020-01-02 10:27:55
315
1
原创 手写一个链表
public class LinkedList { //初始化一个头节点 private Node header = new Node(0,null,null); /**添加一个节点 *1. 找到当前链表的最后节点 *2. 将最后这个节点的next 指向 新的节点 */ public void add(Object data){ ...
2019-12-01 17:31:31
279
原创 读写锁代码示例
/** * @author yuanjin.ye * @version 创建时间:2019/11/19 * @description: */public class RedisDesign { private volatile Map<String,Object> map = new HashMap<>(); private Reentra...
2019-11-19 11:31:51
289
原创 稀疏算法代码示例
/** * @author yuanjin.ye * @version 创建时间:2019/11/19 * @description: */public class XSArrayDemo { public static void main(String[] args) { //1、定义写一个棋盘,11*11的棋盘 int[][] ches...
2019-11-19 11:28:18
457
原创 经典问题--String、StringBuffer和StringBuilder的区别
String、StringBuffer和StringBuilder的区别这个问题主要主要从两个方面去回答 - **速度 - **线程安全StringString字符串不断赋值的过程,JVM处理的处理是:不断的创建对象和回收对象,所以速度是最慢的;StringBuffer和StringBuilder则不是; 线程安全问题: 首先我们要明白什么是线程安全问题,所谓的线程安全是...
2018-04-25 14:36:40
283
原创 SpringMvc和Struts2的区别
拦截级别: Struts2是类级别,一个请求对一个request请求; SpringMvc是方法级别,一个请求方法对应一个request请求,而一个方法又对应一个url,很容易实现restful;参数: Struts2一个请求生成一个action单列,属性和方法都是共享的,一个action对应一个request上下文; Spr...
2018-04-09 15:25:04
243
原创 Java的一些名词解释
1、抽象的定义?抽象和封装的不同点? 抽象的定义: 抽象:抽象就是从具体实例中分离出来的行为步骤;用Java来实现就是根据事物所具有的功能 来创建类;其目的就是把类的行为和实现细节分离开来; 封装:封装关注的实现细节;通过隐藏对象内部细节做到封装;2、继承的定义: 一个类具有从基类获取方法和属性的能力; 意义:代...
2018-04-09 14:14:37
575
原创 Thread中start()和run()的区别
start():用来启动一个新线程;新线程会执行run方法,start()不能被重复调用,它是并发执行的;run():只是一个普通方法而已,在调用的线程中按顺序执行而已;...
2018-04-09 14:13:12
263
原创 建造者模式
建造者模式: 将一个复杂的对象的创建过程和显示分离出来,使得同样的创建过程可以有不同的表示;组成: 一个复杂基类; 一个抽象类(抽象出设置复杂类的属性和获得对象) 一个实现细节类,需要继承上面的抽象类; 建造者类,通过实现细节类,获取所需个个性复杂类;代码如下:public class Student { /...
2018-04-08 11:13:55
225
原创 Java基础总结从0开始(三):Java反射原理
反射:Java虚拟机允许运行时获取类的信息。 2.1 反射的常用方法: a.forName(String className) : 返回与带有给定字符串名的类或接口相关联的 Class 对象。 b.forName(String name, boolean initialize, ClassLoader loader) : 使用给定...
2018-03-07 11:26:45
264
原创 Java基础总结从0开始(二):final、finally、finalize的区别
final:用于修饰类、方法和属性;被修饰的类不能被继承,方法不能重写,属性不可改变即参量; -----ps:abstract和final不能同时修饰类finally:多用捕获异常后必须执行执行的代码块,比例关闭连接,IO流等;finaliza:JVM在回收垃圾之前首先要进行资源回收,资源回收就是调用这个finaliza方法,由垃圾回收器主动调用;...
2018-03-07 10:41:05
276
原创 Java基础总结从0开始(一):Java面向对象的三个基本特征
三个基本特征:封装、继承、多态封装:就是把抽象出来的数据和方法逻辑模块化、抽象化、规范化。 作用:提高代码的复用率;提高代码质量;方便管理;安全统一。继承:一个类使用另外一个所有可用的功能方法和属性(除了私有的,其他的都能被调用),并通过extends关键字关联起来的行为称之为继承。其中被继承者我们称之为“基类”、“超类”或者“父类”; 继承可以使用‘父类’私有...
2018-03-07 10:21:21
272
原创 mysql千万数数据查询优化思路
例如:student这张表数据量有1000万条,字段: Id,name,grade,stuNo...查询需求:查询出叫“王强”的人查询语句:select id,name from student (试了就知道千万级别的数据用这条语句查询显然是非常慢的)如何优化: 1、基于(id,name)建立索引;alter student privilege add index id_nam...
2018-03-05 09:48:53
482
原创 年份选择器
所属年份 function setYear(){ var yearObj = document.getElementById("year"); yearObj.options.length = 0; yearObj.options[0] = new Option("",""); for(var i=1;i<=50;i++){ if(i>10){ y
2017-12-26 10:03:27
4410
原创 IO操作文件内容打印到控制台,将文件内容复制到另外一个文件
package com.yyj.jan.io;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;
2017-07-27 13:57:41
567
原创 NIO系列教程--NIO概述
什么是NIOJava NIO(new IO)是一个可替代的标准的Java IO api的IO, Java NIO 提供了标准IO不同的IO工作方式;标准的IO是基于字节流和字符流的进行操作的;Channels and BuffersNIO是基于 通道 和 缓冲区的进行操作读取的,数据是从通道中读取到缓冲区中,或者重缓冲区读如到通道中;Non-bl
2017-04-20 13:31:30
477
原创 Java快速排序算法
基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
2017-04-19 16:33:31
450
原创 double类型数据保留2位小数点
/** * 小数点保留两位 * @param d * @return * @Author: yeyuanjin */ public static double keep2decimal(double d){ if(d>0){ d = new BigDecimal(d).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(
2017-01-19 10:33:16
4953
原创 23种设计模式之工厂方法模式
创建一Animal接口类:package com.animal;public interface Animal {}创建一个God接口类:package com.animal;public interface God { public Animal create();}创建一个狗物种:package com.animal;public class Dog
2016-12-21 13:59:02
510
原创 一个简单的webService程序
package webservice;import javax.jws.WebService;import javax.xml.ws.Endpoint;@WebServicepublic class TestWebservice { public String getValue(String name){ return "my name is :"+name; }
2016-12-20 15:37:01
1735
原创 批量重命名一个文件夹的文件,例如:img下有600张图片,对其重名
import java.io.File;import java.util.ArrayList;import java.util.Arrays;public class FileUtilDeal { public static void main(String[] args) { //File file = new File("E:\\极草\\img\\F20150603-1638
2016-12-19 11:22:18
3118
原创 使用NIO读取文件 Java实现案例
package com.nio;import java.io.IOException;import java.io.RandomAccessFile;import java.nio.ByteBuffer;import java.nio.channels.FileChannel;public class NioDemo { public static void main(String
2016-11-07 11:11:55
1930
原创 NIO的工作方式(一)
BIO即阻塞I/O,不管是磁盘IO还是网络IO,数据在写入OutputStream或者从InputStream读取时都有可能会阻塞,一旦有阻塞,线程将会失去CPU的使用权,这在当前的大规模访问量和有性能要求的情况下是不能呗接受的。虽然当前的网络IO有一些解决办法,如一个客户对应一个处理线程,出现阻塞是只是一个线程阻塞而不会影响其他线程工作,还有为了减少系统线程的开销,采用线程池的棒法来减少线程的创
2016-11-03 23:56:20
480
原创 Socket网络编程:基于TCP多线程通信
第一步:编写启动服务端的线程类package socket;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.P
2016-10-25 15:43:48
2082
原创 javascript中 if(变量)和if(变量==true)的区别
主要解释if(变量),在Java中if(条件){} 括号内的条件是一个布尔值,而在js中 if(变量),这个变量只要满足:变量如果不为0,null,undefined,false,都会被处理为true。只要变量有非0的值或是某个对象,数组,字符串,都会认为true
2016-10-12 13:36:18
8279
2
原创 采用JDK并发包提供的Lock, Condition等类的相关方法控制多线程.
和饮用的文章相比,发现使用并发包后,攻击次数只有280下,而引用代码是300次,可以看出JDK并发包效率更高
2016-09-30 16:03:41
466
原创 多线程问题,三个线程轮流进行,每个线程进行n次操作,共执行n*n*3次操作。本代码用三军攻击做演示,通俗易懂。
package com.yyj.zxy;public class SanJunFight { /** * 三只部队轮流上战场,每只部队在战场上每一轮只能进行10次攻击; * 合计攻击300次则停止攻击; */ private static int count = 1; //攻击计数器 private static int part = 1; //默认第一支部队先进行第一
2016-09-30 15:24:53
2111
原创 一个经典的Map+正则表达式练习题:给定一个带其他文字的字母字符串,求出各个字符有多少个?
package com.test;import java.util.HashMap;import java.util.Map;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test { public static void main(String[] args) { Stri
2016-09-29 10:35:22
1861
原创 Spring框架的设计理念于设计模式分析(一)
1、Spring的特性功能:web、transaction。。。。Aop、JDBC、ORM(关系映射)2、Spring的骨骼架构:核心组件Context 核心组件Bean 核心组件Core。
2016-06-22 09:47:20
903
原创 使用Map集合求出一个字符窜中各个字符的个数
使用Map利用key值的唯一性可以很好的计算出每个key的个数,只要在put之前判断key是否存在,存在则value+1,否则put(key,1);注意++value,value++的区别,这是个坑
2016-06-18 21:58:52
2608
原创 Http get/post 练习实例
package com.http.test;import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net
2016-04-25 16:45:42
1112
原创 ubuntu系统 写第一个java程序--------Hello.java
1.为了便于文件管理,新建一个命名为“JavaIfle”的文件夹sudo mkdir JavaFile2、接下来释放该文件的权限 chmod 777 JavaFile3、进入该文件目录cd JavaFile4、创建java文件gedit Hello.java5、编译java文件javac Hello.java6、执行java程
2016-04-04 23:21:29
4462
原创 搞了一上午的websocket,最后启动的时候发现websocket无法连接到服务器
这个问题相信不上的网友遇到过,网上给出的解决办法也很多。但还是没能解决。最后我发现原来根本问题是JDK版本和tomcat版本问题;前提保证代码没问题1、最低版本要jdk1.7以上;2、tomcat要tomca7.0以上,别忘了配置tomcat7.x JDK name 。
2016-03-25 14:08:01
20296
1
原创 xml 的基本格式 及 注意事项
语法声明XML声明可有可无,推荐加上 "?xml" 不能有空格XML声明作为XML文件的第一行(一定要在第一行)version version="1.0" 必须是1.0如果有声明,必须有version属性而且必须在属性列表的第一位encoding必须和实际的编码格式一致元素标记XML 文档必须有一个顶层元素XML 文档只能有一个顶层元素有且
2015-01-15 12:53:38
1046
原创 如何获取10000之内的回文?(回文:正反读起来都是一样的!)
public class backword { public static void main(String[] args){ for(int i=10;i<100000;i++){ if(isBackWord(i)){ System.out.println(i); } } } //判断回文方法; private static boolean isBackW
2014-11-19 16:33:53
721
ActiveMQ-Java P2P模式MQ实战
2017-09-25
最新Struts2+Hibernate+Spring框架整合
2016-01-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人