
java
文章平均质量分 64
月光轩辕-
Keep moving
展开
-
StreamTokenizer读不到TT_EOL
pre在刷题的时候发现有些大神用StreamTokenizer来减少数据读入时间,经过尝试,在读入数据多的情况下,这部分节省出来的时间是比较明显的。但是在尝试反转句子[^题目]的时候,我需要处理换行符的问题,我发现EOL标识一直读不到,最终在stackoverflow上找到了答案,我在这里把经验分享给大家。问题简述代码如下:public static void main(S...原创 2018-08-31 20:38:14 · 830 阅读 · 0 评论 -
ZipEntry.isDirectory()判断错误
pre在写一段涉及文件解压代码的时候遇到了ZipEntry.isDirectory()判断错误,导致解压代码把空文件夹当做文件处理的问题。 jdk: 1.8.0_144问题代码if (entry.isDirectory()) { new File(destDir + entry.getName()).mkdirs(); continue;}问题分析通过分析JDK源码可以确认问题愿意,原创 2018-05-03 16:09:50 · 4007 阅读 · 2 评论 -
JDBC preparedStatement executeBatch 效率低
问题目前在优化一份代码,通过日志定位,发现程序的主要的时间花费在excuteBatch语句上。问题代码PreparedStatement ps = tempbaseCon.prepareStatement(sql);while (rs.next()) { //读取数据 for (int i = 2; i <= columnCount; i++) { ...原创 2018-04-24 18:03:58 · 3045 阅读 · 0 评论 -
java实现代理服务器
前束本篇博客没有给出一个完善的技术解决方案,使用java搭建代理服务器是处理本人想要实现主备切换的broker而产生的想法,由于能力,时间和精力的限制,目前只能将想法的大致内容实践一下,这里只是分享一些这两天在这上面做出的一些探索,以免其他人重蹈覆辙。简述需求简述为通过JAVA实现一个代理服务器,客户端的Http请求全部指向代理服务器,代理服务器基于一定的策略将请求转发给后台服务器,(这里的策略就比原创 2017-03-14 01:23:36 · 12096 阅读 · 0 评论 -
poi向已经打开的excel文件写数据导致文件被清空
概述最近在做项目的时候遇到了使用Java调用POI读写Excel的问题,再向一个已经打开的文件写入修改好的数据的时候,源文件被复写为空文件。这个问题涉及到POI读写文件的原理,故在此记录一下,以备日后回顾。问题程序 //读数据表 Workbook wb = WorkbookFactory.create(new File(sourcePath));原创 2017-02-22 15:11:45 · 2608 阅读 · 0 评论 -
e.printStackTrace()与System.out输出顺序混乱
问题描述在系统输出的时候发现System.out与e.printStackTrace()的顺序混乱。会出现下面的情况。com.jdbc.exceptions.xxxxx: message //output by e.printStackTrace()hahahahaha //output by system.out at method1(position) //output by原创 2016-12-08 00:21:47 · 1810 阅读 · 0 评论 -
JAVA去除ASCLL码为160的空格
问题描述读入一串字符串,输出的时候出现’?’字符。通过Debug模式检查字符串,发现字符串中该位置的ASCLL值为160测试程序String input = "12121·121";input += (char)160+"";input = input.replaceAll("\\s+", " ");input = input.trim();System.out.println(Arrays原创 2016-10-10 17:39:17 · 5716 阅读 · 1 评论 -
Base64编码出现换行符
概述Base64是一种字符串编码格式,Base64采用A-Z a-z 0-9 “+“ “/“这一共64个字符来编码原始字符(还有垫字符“=“)。一个字符本身是1个字节,也就是8位,而Base64编码后的一个字符只能表示能表示6位的信息。也就是原始字符串中3字节的信息编码会变成4字节的信息。Base64的主要作用是满足MIME传输需求,在传输过程中都是用ASCII支持的可见字符。Base64是基于字原创 2016-09-19 23:27:10 · 38786 阅读 · 2 评论 -
Java读写二进制文件到String,再写入二进制文件
概述java读写文件的有很多种方式,基本都是采用java.io的inputStream和各种基于inputstream的封装实现对文件的读写,最原始的接口提供的便是基于byte的读写,而String可以看做是char[],一个char是8个byte。在最原始的ASCII编码中,我们采用一个字节 也就时8位来表示一个字符(图形字符或者控制字符),而后来1个字节不足以表示现实中的所有字符,于是出现了各种原创 2016-09-18 19:36:02 · 15481 阅读 · 0 评论 -
eclipse插件开发获取Eclipse相关的文件根目录
最近在写一个eclipse插件,存储文件的时候就需要用到相关的文件路径,由于eclipse本身是一个跨操作系统的应用,所以我们不可以无脑的写c://path 之类的路径,最后还是使用相对eclipse路径的比较好,这样做的好处主要是以下三点1统一管理//避免我们需要通过操作系统 以及用户习惯来制定相应的文件目录2可以跨平台3会规避掉一些读写权限的问题。//eclipse拥有works转载 2016-04-18 16:58:34 · 3376 阅读 · 3 评论 -
配置MyEclipse Maven环境
虽然我的大部分项目已经迁到Idea上去了,但是在写部分小的测试程序的时候还是习惯性的会点开MyEclipse。之前使用第三方库的时候 我会习惯的下载jar包,然后build path导入,但是在idea中貌似通过配置maven依赖更方便,于是我在MyEclipse中也想使用pom.xml来导入依赖,在尝试的过程中遇到了些问题,我这里是记录解决这些问题的方法。环境Myeclipse原创 2015-11-17 11:27:49 · 672 阅读 · 0 评论 -
hadoop入门笔记[一]
前言: hadoop是我很久之前就准备开始学习的内容,最近正好有个这样的技能比赛,于是我和朋友组了队参赛,边学习边实践,和我往常的风格一样,这个系列的博客不会以教程的方式呈现,这个教程主要是记录我在实践过程中遇到的坑与解决方案,也就是我需要读者有一定的实践经验,如果遇到了类似的问题,我希望我的博客能给这些朋友一些启发。##搭建hadoop环境前期准备- linux (我选择了u原创 2015-11-07 14:00:01 · 610 阅读 · 0 评论 -
IDEA十大快捷键
现在已经基本确定从eclipse(&&MyEclipse)阵营转换到IDEA阵营了,在IDEA下有一些快捷键和原来的Eclipse环境下存在很大区别,并且它自身提供了很多额外的有用快捷键。本来只是准备找个基于文件名搜索的快捷键,但是偶然找到了cdai大神关于IDEA快捷键的整理,这博客必须转载学习下。。转自http://blog.youkuaiyun.com/dc_726/article/detail转载 2015-10-22 11:42:22 · 2762 阅读 · 0 评论 -
codeblocks使用cppcheck检查代码
cppcheck是一个静态代码检查工具,能够根据代码分析一些可行的优化方向,但是并不是完全准确,不是完全准确,不是完全准确,重要的事情所以需要说三次。cppcheck是一个可以单独使用的工具,存在图形化界面和命令行两种使用方式。这里主要讲code blocks使用cppcheck 插件的方法。code blocks 插件里是有cppcheck的 但是不能使用,需要我们手动下载原创 2015-09-23 17:23:20 · 5977 阅读 · 0 评论 -
BiMap
转自http://vipcowrie.iteye.com/blog/1521092BiMap BiMap是一个有用的集合类型,很简单,它就是一个双向的映射。 反向转换一个Map 一个普通的map是一个key/value的集合,你可以使用key来查询 value,例如,我来创建一个字段: Java代码 Map britishToA转载 2015-08-15 14:54:18 · 3271 阅读 · 0 评论 -
windows使用jad反编译jar
jad 是一个java 反编译的小程序,实现不算复杂,可以方便把.class 文件转化成源码文件但是jad 存在一个弊端就是无法编译整个jar这里我采用了windows 的批处理命令 来解决这个问题材料准备- jad- 一个测试的jar- windows 环境将jar用压缩工具解压到需要的一个工作目录,要求路径中不包含空格和中文等原创 2015-07-28 15:56:08 · 3181 阅读 · 2 评论 -
实现JDialog透明背景
回答来自stackoverflow :http://stackoverflow.com/questions/4631021/how-to-set-transparent-background-of-jdialog问题:Hy,..how can i set the background transparent and "remove" the clos转载 2015-07-18 16:13:31 · 4517 阅读 · 1 评论 -
swing基础和事件响应
转自http://zxc8899.iteye.com/blog/1556094一、swing基础 1、平台无关性,无需依赖平台 容器:代表管理,可以添加组件 组件:代表功能 2、类层次结构 java.awt.Component java.awt.Container java.awt.Window javax.swin转载 2015-07-18 13:47:40 · 1557 阅读 · 0 评论 -
SimpleDateFormat 源码解析
今天一个朋友突然说起了字符串解析的时候,如果字符串超出的时候 时间会出现变动的情况我觉得这个问题很有意思 就开始查看源码,这篇博客的主题内容将围绕这个展开,接下来讲干货。当我们在解析时间的时候 往往会采用下面的格式import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.原创 2015-07-02 15:53:32 · 3314 阅读 · 0 评论 -
java中string 的split函数
之前没有在split函数 只是单纯用了split(regex) 的方法做字符串今天遇到个人问 为什么这个方法会导致最后的空字符串消失,我一时回答不上了 就去翻看了下1.7JDK文档在文档中我找到这样的描述split(regex) 函数是 调用split(regex,limit) 来实现的, limit 的默认值为0,匹配完之后尾部的空字符串会自动删除原创 2015-06-19 15:27:08 · 1061 阅读 · 0 评论 -
线程中start方法与run方法的区别-java教程
线程中start方法与run方法的区别-java教程在线程中,如果start方法依次调用run方法,为什么我们会选择去调用start方法?或者在java线程中调用start方法与run方法的区别在哪里? 这两个问题是两个非常流行的初学者级别的多线程面试问题。当一个Java程序员开始学习线程的时候,他们首先会学着去继承Thread类,重载run方法或者实现Runnable接口,实现ru翻译 2015-06-18 12:24:15 · 7401 阅读 · 3 评论 -
分解和合并:Java 也擅长轻松的并行编程! 作者:Julien Ponge
文中的程序我也测试过了, 注意下面的红字部分,在测试的时候我们需要保护测试环境尽可能等价,要么 分成2次测试 一次输出串行的时间 一次输出并行的时间,如果想在一个方法中比较,那么两者的先后顺序就会对结果有所影响,在我的尝试下 先生成Date 对象 以及先进性一遍并行遍历 会比较有效,内部的原理暂时不清楚,应该和JVM的内存管理有关 public static void main(St转载 2015-06-17 18:43:48 · 1249 阅读 · 0 评论 -
Java应用类的包名为什么不能以java.开头?
转自 http://blog.youkuaiyun.com/zhangzeyuaaa/article/details/42531135我们自己编写的Java类默认情况下都由系统类加载器加载。系统类加载器也是ClassLoader的子类,也是通过调用ClassLoader.loadClass(name)方法来加载类,而扩展ClassLoader类的一般做法就是重写findClass(name)方法,然后转载 2015-05-25 15:40:43 · 1728 阅读 · 0 评论 -
HashMap,TreeMap与LinkedHashMap的实例
今天上午面试的时候 问到了Java,Map相关的事情,我记错了HashMap和TreeMap相关的内容,回来赶紧尝试了几个demo理解下package Map;import java.util.*;public class HashMaps { public static void main(String[] args) { Map map = new HashMap();原创 2015-05-23 13:22:28 · 949 阅读 · 0 评论 -
三分钟理解Java中字符串(String)的存储和赋值原理
这篇文章中后段主要介绍了jVM的内存管理的概念,还是比较简明扼要的String之类的内置类型在普通的常量赋值的时候,值是被存在常量池中,如果采用new等方法,String之类的变量将会被封装器包装作为普通的对象出现,而由于封装器中对象值都是被final修饰的,String等对象的值是不可变的,只能新生成对象转义引用。以上是我的理解,其余内容看这位大神的说法吧转自转载 2015-05-21 19:25:00 · 691 阅读 · 0 评论 -
IntelliJ IDEA 显示中文字符
最近开始换Intellij 最开始就遇到了字符集的问题,找了半天菜单栏没有找到MyEclipse中对应的菜单,后来还是在网上找到了解决方案,这里的settings 菜单栏上没有直接点右上角的搜索settings 点击action分栏中的第一项就是了出处 http://blog.youkuaiyun.com/herbert5069/article/details/12782977转载 2015-05-18 20:57:22 · 4701 阅读 · 0 评论 -
java面试题整理(五)
参考原址http://blog.youkuaiyun.com/sgx425021234/article/details/88390051、 &和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 在算数运算的时候需要多考虑位运算,这能节省很多时间,最为典型的就是计算能被n整除的最大2的倍数, n & (-n) 2、原创 2015-05-15 20:01:03 · 480 阅读 · 0 评论 -
java面试题整理(四)
参考链接http://blog.youkuaiyun.com/sgx425021234/article/details/87946141、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。这里使用信号量 semaphore 来实现加锁 程序实现的是j中至多只能大于等于0 小于等于1, 这类问题是在操作系统中经典的同步问题import java.uti原创 2015-05-04 20:53:49 · 484 阅读 · 0 评论 -
解析页面font相关的css
基本就是正则爬取,inline部分可能有些问题,因为我没考虑层次树,所以inline部分爬出来的可能没啥用,但是基本inline风格的也少,所以目前来说还是有用的package AccessURL;import java.io.BufferedReader;import java.io.File;import java.io.FileWriter;import java.io.IOE原创 2015-05-02 18:07:57 · 467 阅读 · 0 评论 -
java面试题整理(三)
1、bean 实例的生命周期bean 会话bean ,实体bean和消息驱动bean会话bean 分 stateful bean stateless bean 和singleton bean 有状态的bean 是用来记录服务器与某个客户端的一次会话(包含多次操作),bean 在会话开始的时候创建,在客户端丢弃引用的时候丢弃无状态的bean 是原创 2015-04-25 17:35:13 · 538 阅读 · 0 评论 -
java面试题整理(二)
参考文章http://blog.youkuaiyun.com/sgx425021234/article/details/87861521、 Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 不可以,匿名内部类的实现简化了部分的编程环境,但是他的功能也较弱,他采用无参或者声明的时候传原创 2015-04-23 19:01:05 · 529 阅读 · 0 评论 -
HashMap与Hashtable的区别
http://blog.youkuaiyun.com/java2000_net/archive/2008/06/05/2512510.aspx 我们先看2个类的定义[java] view plaincopypublic class Hashtable extends Dictionary implements转载 2015-04-23 16:18:33 · 504 阅读 · 0 评论 -
Java中的内部类和匿名类
来源http://blog.sina.com.cn/s/blog_77c6324101016hgm.html Java内部类(Inner Class),类似的概念在C++里也有,那就是嵌套类(Nested Class),乍看上去内部类似乎有些多余,它的用处对于初学者来说可能并不是那么显著,但是随着对它的深入了解,你会发现Java的设计者在内部类身上的确是用心良苦。学会使用内部类转载 2015-04-23 15:52:17 · 483 阅读 · 0 评论 -
验证java中1个char是2个字节
import java.io.UnsupportedEncodingException;public class Test { public static void main(String[] args) { String str = "中"; char x = '中'; byte[] bytes = null; byte[] bytes1 = null; try {原创 2015-04-09 09:42:16 · 762 阅读 · 0 评论 -
java 线程同步
这个问题是我最近在做实习笔试的时候遇到的,当时很水的 用了同步块搞定了,不过现在还是决定稍微深入一点。总的来说线程同步就是通过加锁和解锁机制来实现的,如果存在2个线程对同一个变量的访问,特别是出现删改的操作,这时候就必须对变量进行加锁,限制并发访问的线程数量。我对这个概念的了解始于操作系统,我记得这里面存在一个临界区的概念。临界区是涉及到线程共享资源操作的区域的总体,对于共享资源的操作原创 2015-04-03 13:17:38 · 478 阅读 · 0 评论 -
java面试题整理(-)
最近可以能要开始准备实习了,现在我要把java的基本概念梳理一下,这里主要是按照网上的一些demo然后根据他们给出的题目给出自己认为合理的回答每份文件中会给出参考博客的链接参考了http://blog.youkuaiyun.com/sgx425021234/article/details/87860171、 面向对象的特征有哪些方面抽象 封装 继承 多态等抽象:是对复杂对象原创 2015-03-22 14:55:09 · 487 阅读 · 0 评论 -
java原子操作与并发
原子操作是JVM单位能处理的指令,在汇编中比如ADD操作 ,J跳转操作等。我们的常用语句基本上都不是原子指令比如,A=A+1,这样的指令分两步,1A+1 2 赋值这样的操作过程如果不注意,会在并发中引起巨大的问题。下面是来自http://88250.b3log.org/java-atomic-conncurrent 转载的博文,虽然故事简单,但是希望给大家提个醒Java转载 2015-01-29 22:26:27 · 848 阅读 · 0 评论 -
java回调
Java回调机制解析分类: J2SE2013-08-2818:08 444人阅读 评论(4) 收藏 举报模块之间总是存在这一定的接口,从调用方式上看,可以分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,也是我们在写程序中经常使用的;回调是一种双向的调用模式,也就是说,被调用的接口被调用时也会调用对方的接口,这句话可能有点绕,等文章后面举例说明;异步调用是一种类似消息或转载 2015-01-16 10:47:45 · 595 阅读 · 0 评论 -
java String.format
http://soft.chinabyte.com/database/182/12171182.shtml转载 2015-01-16 10:47:43 · 551 阅读 · 0 评论 -
java 泛型理解(博客链接)
主要是关于JDK 1.5版本的泛型 直接放链接http://blog.youkuaiyun.com/turkeyzhou/article/details/2888774转载 2015-01-16 10:47:24 · 571 阅读 · 0 评论