自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Elementer的专栏

我是一直小小Java鸟

  • 博客(43)
  • 资源 (3)
  • 收藏
  • 关注

原创 什么是微服务?

微服务是一种架构模式,将一个复杂的、臃肿的单体应用根据业务拆分成一个个可独立部署的服务,服务与服务之间采用轻量级的通信机制进行交互(通常是基于HTTP的RESTFULL API)来完成一个复杂的业务。 换句话说,在微服务出来之前,一个应用一个war包、一个tomcat、一个mysql数据库解决,并发量高的情况升级硬件或者多部署几个服务,服务端负载均衡,达到高可用。这种架构模式的缺点显而易见! 单体特点 优点:部署简单、技术单一、用...

2020-10-22 21:06:26 364

原创 如何回答Spring事务,回答这几点就行

1、Spring是如何管理事务的? Spring中的事务:是指完成一系列sql操作,需要保证原子性,隔离性,一致性、持久性; 首要目标是保证原子性,要么都执行成功,要么都执行失败。 Spring提供两种事务管理方式: 1)编程式事务,即在代码中手动提交、回滚事务,灵活性比较强,但是维护起来比较困难,更复杂。 几个比较重要的接口:...

2020-01-02 10:27:55 250 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 234

原创 读写锁代码示例

/** * @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 229

原创 稀疏算法代码示例

/** * @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 392

原创 经典问题--String、StringBuffer和StringBuilder的区别

String、StringBuffer和StringBuilder的区别这个问题主要主要从两个方面去回答 - **速度 - **线程安全StringString字符串不断赋值的过程,JVM处理的处理是:不断的创建对象和回收对象,所以速度是最慢的;StringBuffer和StringBuilder则不是; 线程安全问题: 首先我们要明白什么是线程安全问题,所谓的线程安全是...

2018-04-25 14:36:40 220

原创 SpringMvc和Struts2的区别

拦截级别:            Struts2是类级别,一个请求对一个request请求;             SpringMvc是方法级别,一个请求方法对应一个request请求,而一个方法又对应一个url,很容易实现restful;参数:        Struts2一个请求生成一个action单列,属性和方法都是共享的,一个action对应一个request上下文;       Spr...

2018-04-09 15:25:04 197

原创 Java的一些名词解释

1、抽象的定义?抽象和封装的不同点?    抽象的定义:               抽象:抽象就是从具体实例中分离出来的行为步骤;用Java来实现就是根据事物所具有的功能    来创建类;其目的就是把类的行为和实现细节分离开来;                封装:封装关注的实现细节;通过隐藏对象内部细节做到封装;2、继承的定义:      一个类具有从基类获取方法和属性的能力;    意义:代...

2018-04-09 14:14:37 512

原创 Thread中start()和run()的区别

start():用来启动一个新线程;新线程会执行run方法,start()不能被重复调用,它是并发执行的;run():只是一个普通方法而已,在调用的线程中按顺序执行而已;...

2018-04-09 14:13:12 211

原创 建造者模式

建造者模式:                  将一个复杂的对象的创建过程和显示分离出来,使得同样的创建过程可以有不同的表示;组成:        一个复杂基类;        一个抽象类(抽象出设置复杂类的属性和获得对象)        一个实现细节类,需要继承上面的抽象类;        建造者类,通过实现细节类,获取所需个个性复杂类;代码如下:public class Student { /...

2018-04-08 11:13:55 177

原创 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 212

原创 Java基础总结从0开始(二):final、finally、finalize的区别

final:用于修饰类、方法和属性;被修饰的类不能被继承,方法不能重写,属性不可改变即参量;        -----ps:abstract和final不能同时修饰类finally:多用捕获异常后必须执行执行的代码块,比例关闭连接,IO流等;finaliza:JVM在回收垃圾之前首先要进行资源回收,资源回收就是调用这个finaliza方法,由垃圾回收器主动调用;...

2018-03-07 10:41:05 222

原创 Java基础总结从0开始(一):Java面向对象的三个基本特征

三个基本特征:封装、继承、多态封装:就是把抽象出来的数据和方法逻辑模块化、抽象化、规范化。          作用:提高代码的复用率;提高代码质量;方便管理;安全统一。继承:一个类使用另外一个所有可用的功能方法和属性(除了私有的,其他的都能被调用),并通过extends关键字关联起来的行为称之为继承。其中被继承者我们称之为“基类”、“超类”或者“父类”;          继承可以使用‘父类’私有...

2018-03-07 10:21:21 225

原创 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 362

原创 jsp页面解决科学计数法显示问题

value=""

2017-12-29 14:14:33 3844

原创 年份选择器

所属年份 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 4325

原创 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 514

原创 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 429

原创 HashMap 和HashTable的区别

HashMap                                            HashTable是否线程安全                                                  否   是同步异步        不同步

2017-04-20 11:19:57 351

原创 Java快速排序算法

基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

2017-04-19 16:33:31 408

原创 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 4881 1

原创 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 458

原创 一个简单的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 1691

原创 批量重命名一个文件夹的文件,例如: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 2981

原创 使用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 1828

原创 NIO的工作方式(一)

BIO即阻塞I/O,不管是磁盘IO还是网络IO,数据在写入OutputStream或者从InputStream读取时都有可能会阻塞,一旦有阻塞,线程将会失去CPU的使用权,这在当前的大规模访问量和有性能要求的情况下是不能呗接受的。虽然当前的网络IO有一些解决办法,如一个客户对应一个处理线程,出现阻塞是只是一个线程阻塞而不会影响其他线程工作,还有为了减少系统线程的开销,采用线程池的棒法来减少线程的创

2016-11-03 23:56:20 431

原创 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 2031

原创 javascript中 if(变量)和if(变量==true)的区别

主要解释if(变量),在Java中if(条件){}  括号内的条件是一个布尔值,而在js中 if(变量),这个变量只要满足:变量如果不为0,null,undefined,false,都会被处理为true。只要变量有非0的值或是某个对象,数组,字符串,都会认为true

2016-10-12 13:36:18 8107 2

原创 采用JDK并发包提供的Lock, Condition等类的相关方法控制多线程.

和饮用的文章相比,发现使用并发包后,攻击次数只有280下,而引用代码是300次,可以看出JDK并发包效率更高

2016-09-30 16:03:41 412

原创 多线程问题,三个线程轮流进行,每个线程进行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 2041

原创 一个经典的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 1795

原创 Spring框架的设计理念于设计模式分析(一)

1、Spring的特性功能:web、transaction。。。。Aop、JDBC、ORM(关系映射)2、Spring的骨骼架构:核心组件Context 核心组件Bean 核心组件Core。

2016-06-22 09:47:20 839

原创 使用IO流进行文件的拷贝

IO流

2016-06-18 22:17:31 1106

原创 使用Map集合求出一个字符窜中各个字符的个数

使用Map利用key值的唯一性可以很好的计算出每个key的个数,只要在put之前判断key是否存在,存在则value+1,否则put(key,1);注意++value,value++的区别,这是个坑

2016-06-18 21:58:52 2545

原创 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 1036

原创 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 4379

原创 搞了一上午的websocket,最后启动的时候发现websocket无法连接到服务器

这个问题相信不上的网友遇到过,网上给出的解决办法也很多。但还是没能解决。最后我发现原来根本问题是JDK版本和tomcat版本问题;前提保证代码没问题1、最低版本要jdk1.7以上;2、tomcat要tomca7.0以上,别忘了配置tomcat7.x JDK name 。

2016-03-25 14:08:01 20067 3

原创 xml 的基本格式 及 注意事项

语法声明XML声明可有可无,推荐加上   "?xml" 不能有空格XML声明作为XML文件的第一行(一定要在第一行)version  version="1.0" 必须是1.0如果有声明,必须有version属性而且必须在属性列表的第一位encoding必须和实际的编码格式一致元素标记XML 文档必须有一个顶层元素XML 文档只能有一个顶层元素有且

2015-01-15 12:53:38 884

原创 如何获取下一天的的时间!

原理:调用类库中的Date类,shi

2014-11-19 16:51:02 836

原创 如何获取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 662

SpringCloud入门学习demo

SpringCloud微服务入门demo,下载即可运行,是入门学习框架的绝佳资源

2018-04-09

ActiveMQ-Java P2P模式MQ实战

去官方网站下载:http://activemq.apache.org/ 我下载的时候是 ActiveMQ 5.14.4 Release版 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。

2017-09-25

最新Struts2+Hibernate+Spring框架整合

在网上查了好多文章,也参考了公司的项目;这个项目的Struts配置文件是引入性的,一个action类对应一个配置文件,例如:UserAction.java,那么我把Struts配置文件命名为user.xml,注意Struts.xml文件一定要放在src下。Spring的service、dao配置文件我也是分开的,这样配置的目的是为了更好的维护。

2016-01-11

空空如也

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

TA关注的人

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