
java初期
文章平均质量分 90
dian张
在路上。。。
展开
-
csv 处理换行符号
package util;import org.apache.commons.io.FileUtils;import java.io.File;import java.io.IOException;public class CsvDealUtils { public static void main(String[] args) throws IOException { csvDealSpecial(); } /** * 处理 csv存在换行原创 2020-11-08 20:04:23 · 1657 阅读 · 4 评论 -
堆排序 快排
堆排序关系parent = (i-1) / 2left = 2i + 1right = 2i+2public class HeapSort { public static void main(String []args){ int tree [] = {10,3,4,9,11}; int n = 5; heapSort(tree...原创 2020-03-03 12:17:59 · 181 阅读 · 0 评论 -
环境变量设置
CATALINA_BASEF:\work\apache-tomcat-7.0.64CATALINA_HOMEF:\work\apache-tomcat-7.0.64CLASSPATH.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;JAVA_HOMEF:\work\Java\jdk1.7.0_71NLS_LANGAMERICAN_AME原创 2016-07-22 23:46:47 · 319 阅读 · 0 评论 -
CRUD 反射 泛型
首先设计一个公共的BaseDao接口,再设计一个抽象类去实现接口BaseDaoImpl的方法,接下来就是各自的具体接口UserDao,根据自身需要增加方法,然后自己的实现类UserDaoImpl去继承这个抽象类并且实现自身的接口公共的BaseDao接口import java.util.List;public interface BaseDao<T> { /** * 保存实体原创 2016-10-27 10:37:35 · 452 阅读 · 0 评论 -
jsh获取项目的路径
var curWwwPath = window.document.location.href; console.log(curWwwPath); var pathName = window.document.location.pathname; console.log(pathName); var pos = curWwwPath.indexOf(pathName);原创 2016-10-29 14:26:56 · 396 阅读 · 0 评论 -
Java获取上月最后一天跟第一天转化为字符串
/** * 上月第一天 */ @Test public void testGetMonthFirstDay(){ Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.MONTH, -1); calendar.set(Calendar.DAY_OF_MONTH, 1);原创 2016-11-10 17:19:31 · 454 阅读 · 0 评论 -
log4j定向输送到文件并且详细输出(sql)
log4j.rootLogger=DEBUG, stdoutlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p [%t]原创 2016-10-27 17:39:55 · 1370 阅读 · 0 评论 -
输出数字2016-10-31 15:39:58.188是Timestamp类型 ,sql拼装
/** * 上月最后一天 * @throws ParseException */ @SuppressWarnings("deprecation")@Test public void testGetMonthLastDay() throws ParseException{ Timestamp timestamp=null; Calendar calendar = C原创 2016-11-11 15:40:54 · 421 阅读 · 0 评论 -
Java常用问题集合
hashcode、equals解决多线程死锁、reentrantLock、synchronized关键字优劣tomcat中多线程并发接收http请求的代码直接在终端怎么去发一个HTTP请求java中的类加载器,tomcat为什么要自定义类加载器java反射的应用tomcat内部是如何找到相应的servlet然后执行代码的去除数组中重复元素的算法Spring或者数据库的事物隔离级别和传播特性是怎样的f原创 2016-09-23 13:34:12 · 385 阅读 · 0 评论 -
Comparable Comparator两个的具体使用
两个都可以用来排序都是接口,里面内部的源码具体如下 如果对字符串排序的话,String里面有一个compareTo方法,利用ascii码来比较。public int compareTo(T o);//一个对象即可使用时候当前类实现Comparable,也就是与Comparable 绑定了,支持了排序了。 Collections.sort(list); int compare(T o1, T o2原创 2016-12-15 15:10:44 · 288 阅读 · 0 评论 -
解析xml
package com.laiwei.lwiot.controller.bean;import org.junit.Test;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import javax.xml.parsers.DocumentBuilder;import javax.x原创 2017-11-30 15:36:17 · 130 阅读 · 0 评论 -
SOA 问题
1)单体应用拆分为分布式系统后,进程间的通讯机制和故障处理措施变的更加复杂。2)系统微服务化后,一个看似简单的功能,内部可能需要调用多个服务并操作多个数据库实现,服务调用的分布式事务问题变的非常突出。3)微服务数量众多,其测试、部署、监控等都变的更加困难。RPC 框架解决了第一个问题。 docker技术解决了第三个问题GTS是一款分布式事务中间件,由阿里巴巴中间件部门研发,可以为微服务架构中的分布原创 2018-03-09 12:16:23 · 200 阅读 · 0 评论 -
synchronized的用法讲解
synchronized修饰几种不同情况的具体用法 synchronized method 锁定当前new的对象 static method 所有对象 class锁 代码块 当前new对象 当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。修饰方法时候:即一次只能有一个线程进入该对象的方法,其他线程要想在此时调用该方法,只能排...原创 2016-12-07 09:52:41 · 373 阅读 · 0 评论 -
Java问题答案集合
有链接的都是引用别人的知识点。因为重写的equal()里一般比较的比较全面比较复杂,这样效率就比较低,而利用hashCode()进行对比,则只要生成一个hash值进行比较就可以了,效率很高,那么hashCode()既然效率这么高为什么还要equal()呢? 因为hashCode()并不是完全可靠,有时候不同的对象他们生成的hashcode也会一样(生成hash值得公式可能存在的问题),所以...原创 2016-09-01 13:30:41 · 2731 阅读 · 0 评论 -
ELK kafka zookeeper 安装 学习使用
kafka zookeeper安装tar -zxvf zookeeper-3.4.6.tar.gzcp zoo_sample.cfg zoo.cfg/bin/zkServer.sh start tar -zxvf kafka_2.11-1.1.0.tgz bin/kafka-server-start.sh config/server.properties bin/kafka-t...原创 2018-04-27 14:25:41 · 579 阅读 · 0 评论 -
OOM异常原因几种类型分析
1.文件描述符(fd)数目超限,即proc/pid/fd下文件数目突破/proc/pid/limits中的限制。可能的发生场景有: 2.短时间内大量请求导致socket的fd数激增,大量(重复)打开文件等 3.线程数超限,即proc/pid/status中记录的线程数(threads项)突破/proc/sys/kernel/threads-max中规定的最大线程数。可能的发生场景有: app...原创 2018-07-25 19:09:33 · 2284 阅读 · 0 评论 -
Springboot Quartz 集成实现方案
1.首先自定义一个Scheduler,任务调度器。2.采用spring自带@Scheduled,定时去数据库扫码获取到任务,将任务添加到Quartz3.将需要操作的任务一一实现Job接口,数据插入到数据库中。代码如下package com.mjitech.quartz;import org.quartz.Scheduler;import org.springframework.bea...原创 2018-11-06 11:31:42 · 186 阅读 · 0 评论 -
阻塞和非阻塞的区别
阻塞:阻塞就是指你必须把这件事干完,干不完就得一直等着干完没等干完返回结果才能走 非阻塞:想做这事情的时候,需要很久,这时候可以去干其他事情,等那个人干完了之后就有结果了,他会告诉你,你可以去干了。原创 2016-09-02 00:13:25 · 718 阅读 · 0 评论 -
ClassLoader进阶
所有jvm在每个类或者接口被java程序首次主动使用才初始化他们。加载详解: 将加载得到的二进制数据放到内存里面,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区的数据结构。 3.类的加载器是继承结构的。根类加载器(BootStrap)扩展类加载器(Extension)系统类加载器(应用加载器System)ExtClass原创 2016-05-16 16:38:12 · 244 阅读 · 0 评论 -
java多线程
多线程可是一个很深的池子,本人初学。 首先讲解下并发与并行 并发:是指在同一个时刻一起运行。线程来回使劲切换。 并行:两个CPU同一个时间点一起运行。创建 等待 运行 阻塞 死了五个状态是线程的描述。java实现多线程有两种:extends Thread or implements Runnable 一般使用Runnable更体现面向对象,则很容易的实现资源共享。程序一开始启动时候,jvm原创 2016-05-14 16:30:34 · 332 阅读 · 0 评论 -
Lock使用
有关于并发,这里先将一个Lock吧。 Lock是一个接口 public interface Lock { void lock(); void lockInterruptibly() throws InterruptedException; boolean tryLock(); boolean tryLock(long time, TimeUnit unit原创 2016-05-14 19:48:34 · 351 阅读 · 0 评论 -
Callable Future Executor
一般通过继承Thread还有实现Runnable,都不可以有返回值,不可以声明检查异常。 Callable和Future,通过ExecutorService的submit方法执行Callable,并返回给Future,这里返回值只有一个,ExecutorService继承自Executor,通过使用Executor执行器来操作。public class CallableAndFuture {原创 2016-05-14 20:38:42 · 438 阅读 · 0 评论 -
Semaphore
Semaphore的作用类似Lock的功能,不同的是Semaphore的构造函数中可以传入一个int型的参数,用来确定创建一个多大的通道。 Lock一次只允许一个线程进入,解锁后才允许别的线程进入。而Semaphore可以允许多个线程同时进入,一旦有线程释放就会空出一个位置让另外的线程进入。 相当与Lock是一个单车道,而Semaphore是一个多车道。public class Semapho原创 2016-05-14 21:00:07 · 451 阅读 · 0 评论 -
fork/join
如果一个应用能被分解成多个子任务,并且组合多个子任务的结果就能够获得最终的答案,那么这个应用就适合用 Fork/Join 模式来解决用归并来思考也可以,分而治之。public class Calculator extends RecursiveTask<Integer> { private static final int THRESHOLD = 100; private原创 2016-05-14 21:18:05 · 331 阅读 · 0 评论 -
maven配置
首先得下载一个maven包,看好你的系统。 接下来是配置maven环境变量。 MAVEN_HOME=C:\Program Files\Java\apache-maven-3.3.9 PATH=%MAVEN_HOME%\bin 接下就是在ide里面配置maven了。这个不用多说了。 你也可以配置maven服务器搭建,省得他妈的一直网上下载,慢死了。Maven缺省的本地仓库路径为user.ho原创 2016-05-15 14:48:46 · 350 阅读 · 0 评论 -
ClassLoader
做一个简单讲解关于类加载器的问题:首先讲解JVM的生存期问题: 程序正常运行结束,那么jvm就死了 System.exit()方法 程序遇错终结 操作系统出错导致jvm进程结束 3.类一开始被加载,然后被连接,然后初始化。 加载:查找并加载类的二进制数据。 连接: 验证: 确保被加载类的正确性。正常人使用javac生成class,有些坏人用特殊生原创 2016-05-16 15:13:46 · 255 阅读 · 0 评论 -
关于jvm的一道题
class Singleton{private static Singleton singleton=new Singleton();//这句换了之后输出是 1 1private static int i;private static int j=0;public Singleton(){i++;j++;}public static Singleton getInstance(){原创 2016-05-16 18:41:00 · 275 阅读 · 0 评论 -
类加载器的父亲委托机制
当前类加载器加载一个类,首先根据委托去由父亲加载,父亲不行,才让这个加载。那三个加载器之间不是继承关系。扩展类加载器jre\lib\ext下加载类库。ClassLoader是一个抽象类。原创 2016-05-16 19:41:01 · 324 阅读 · 0 评论 -
JVM自动内存管理
可回收对象的判定方法:引用计数算法 给对象添加一个引用计数器,每一个引用它的地方时,就+1,失效就-1,为0时候就是不能再被用了。 缺陷: 注意循环引用,就是你用我的,我用你的,叫做死锁吧,引用计数器是1,无法回收。A.b=B;B.a=A; 现在主流的jvm没有使用这个算法。 可达性分析算法: 通过一系列称为GC Roots的对象作为起始点原创 2016-05-17 10:52:24 · 426 阅读 · 0 评论 -
垃圾回收算法
标记清楚算法: 算法两个阶段就够了,标记和清楚,先标记需要回收的对象,然后统一回收。 复制算法: 将内存容量分为大小相等两块,每次只用其中一块,当一块用完了,立刻把活的复制到另一边,没用的就一次性消除了。 标记整理算法:原创 2016-05-17 14:00:26 · 207 阅读 · 0 评论 -
HotSpot算法实现
GC Roots枚举的难点: 检查范围难度大,必须在快照中进行,时间敏感。 GC解释: 可以准确知道内存中的一个数是是什么类型的,是引用还是什么。 举例:当内存中有一个数111的时候,它是一个referecce类型指向的地址还是一个111的值,虚拟机将其判断原创 2016-05-17 14:18:16 · 403 阅读 · 0 评论 -
五种复制文件
public class CopyFileDemo { public static void main(String[] args) throws IOException { String srcString = "c:\\a.txt"; String destString = "d:\\b.txt"; // method1(srcString原创 2016-05-17 22:59:42 · 482 阅读 · 0 评论 -
关于java String的简单概要
**关于String的简单概要**new String()和new String(””)都是申明一个新的空字符串,是空串不是null 1. String a=”a”; Strig c=”c”;输出比较是true 2.String b=new String (“b”);String c=new String (“b”);输出比较是false 进行区别概述,1只创建了一个字符在常量,存放原创 2016-05-14 13:02:51 · 271 阅读 · 0 评论 -
java集合相关知识
集合相关知识集合大致分为三类 List:有序可重复 Set:无序不可重复 Map:俗称字典,key valueJava集合类由两个接口派生:Collection和Map,其中Collection下主要有Set、List、Queue三个接口,而Map接口主要是各种Map接口。 Iterator接口用来迭代集合对象进行输出的,必须依赖于Collection才可使用 pub原创 2016-05-14 15:32:02 · 461 阅读 · 0 评论 -
java异常处理
java的面向对象的语言,处理异常自然用对象来解决。Throwable:异常和错误的基类,提供了错误堆栈实现等一系列方法。 两个直接子类: Error & Exception Error代表大的错误,比如停电了,地震了,电脑爆炸了。 Exception分为运行时的异常,编译时异常。 RuntimeException运行时异常,运行之后才会出现的异常,需要用代码进行预防程序崩溃。 Ja原创 2016-05-14 16:00:42 · 380 阅读 · 0 评论 -
java IO基本知识总结
IO基本知识总结流基本分为字节流(InputStream OutPutStream),字符流(Reader Writer)。 区别: 字节流:一个一个字节的读,所用格式都可以读。 字符流:使用了字节流,读取之后去字符表查取字符返回。文本数据使用字符流,快。其他就用字节流。 我们常用的System是打印流,System.out对应的类型就是PrintStr原创 2016-05-14 14:39:58 · 435 阅读 · 0 评论