自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lcx的专栏

立志打造出高水平JAVA研发方向博客

  • 博客(36)
  • 资源 (2)
  • 收藏
  • 关注

原创 给聊天记录加上日志

聊天往往需要把聊天记录保存下来,可以用Log4j实现,具体代码如下package Net.TCP;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.ServerSocket;import java.net.Socket;

2016-01-08 17:19:15 721

原创 TCP编程——实现多人聊天室功能

通过上一篇方法就能够实现TCP简单连接,但是有个问题,不能实现多客户端连接,因为服务器端如果接到一个连接请求之后,就会进入代码对应的循环中。那么怎么实现多人聊天呢?实际上可以使用多线程,这样就不会有上述问题了。只需要引入新线程来处理每个连接事务即可package Net.TCP;import java.io.BufferedReader;import java.io.IOExcept

2016-01-08 16:25:52 8691 1

原创 TCP编程——最简单的QQ通话功能

TCP编程可以实现QQ基本功能因为JAVA可提供实现网络接口的功能,具体类是ServerSocket(服务器Socket)、Socket(客户端Socket)。实现网络拓扑初始设计如下图 第一步,服务器端启动ServerScoket,来接受客户端请求,端口号为30001。 ServerSocket server=new ServerSocket(30001); whil

2016-01-08 15:25:31 948

原创 动态代理

Java反射包(java.lang.reflect)给编程带来了很多的灵活性,代理能够维持类的原貌,很好地解决java灵活性较差的问题。代理类负责请求的预处理、过滤、将请求分派给委托类处理、以及委托类执行完请求后的后续处理。  静态代理: 抽象接口:package DesignPattern.staticProxy;public interface Hello {

2015-12-10 16:53:30 588

原创 字符串连接效率探究

1.String、StringBuffer/StringBuilder效率比较对于较少字符串连接,使用String或者StringBuffer都行;但是对于大量字符串连接,效果差异就会变得非常明显,直接上代码: package strings;public class FastOrNot { public static void main(String[] args) {

2015-10-01 12:10:45 381

原创 java快速失败分析

java快速失败分析

2015-10-01 10:55:30 511

原创 网易面试题(JAVA)

1. Java如何进行垃圾回收2. Java是用哪种字符集进行编码的?3. 求二叉树的深度,写代码4. 用过哪些集合?HashMap实现原理,Hashtable与ConcurrentHashMap的区别5. 不想进行序列化,用哪个关键字6. SQL语句优化举例,核心7. 递归算法的最大缺点8. 写观察者模式9. Java如何实现夸平台10. 自动事务如何实现

2015-08-31 08:31:55 2199 2

原创 JAVA研发面试题总结——面向对象基础

前两天总结了阿里巴巴的笔试,因为之前也参加过一些面试,现在总结下通用面试题吧(不包含问项目的)。九月份即将参与面试的童鞋可以参考参考。异常有哪些?主要分为:RuntimeException与CheckedException,CheckedException是在编译时候检查的,比如IOException、ClassNotFoundException、ServletException,

2015-08-27 11:00:44 806

原创 阿里巴巴2016研发工程师笔试题

本题实则考察进制转换,可以设为x进制,但是x进制有一个问题,即我们无法对x进制直接进行加减乘除,故转化为我们常见的10进制。78=7*x+8,123=1*x2+2*x+3;然后解方程即可。答案为13进制。本题考察的是装箱与拆箱,==比较的是值,同样equals也是比较值。故选择true,true。equals源码如下: public boolean equal

2015-08-25 21:21:50 5961

原创 接下班概率问题——阿里笔试题

牛客某程序猿小杨每天接老婆下班回家。小杨在6点准时下班从公司开车出发,由于路上可能存在的堵车情况,小杨到老婆公司门口的时间点均匀的分布在6点20到6点30之间。老婆根据小杨的下班时间做了估计,到公司门口的时间点均匀的分布在6点25到6点30之间,如果小杨比老婆晚到公司门口将会挨骂,那么小杨被骂的概率是____。1/41/31/22/33/4以上都不对这个题目是概

2015-08-25 11:25:29 3401

原创 跳格子问题——阿里笔试

有1,2,3,......无穷个格子,你从1号格子出发,每次1/2概率向前跳一格,1/2概率向前跳两格,走到格子编号为4的倍数时结束,结束时期望走的步数为____。212/514/516/518/54这个问题,很显然考察的是递归问题:定义step(i,j)为第i号格子带第j号格子的期望值;step(1,4)为从第一格跳到第四格的期望,要到第四格,

2015-08-25 11:09:57 4540 3

原创 缓存类型?——我所见到的缓存

和同学聊天聊到了缓存,他向我抱怨,咱们老是说缓存,但是怎么感觉什么地方都有缓存,有时就会不知道你在说哪种缓存?我回头想想,也是我们再很多地方都有见过缓存:1. 服务器端缓存当然服务器端缓存作用很多,我最常见的是缓存数据库内容,防止不断向数据库读取同样的内容,适用于读写比大于10的。2. 客户端缓存也称为浏览器缓存,主要保存的是网页、图片、cookie等信息。在Inter

2015-08-24 09:42:58 1506

原创 JAVA实现EXCEL公式专题(七)——统计函数

统计函数主要实现的是较为复杂的统计函数如countif、sumif、frequency,也是,直接上代码/** * 项目名称: * 文件说明: * 主要特点:文件说明:EXCEL函数类型:统计函数 * 简单的函数如sum,average等等就不实现了 * 版本号:1.0 * * 创建时间:2013-12-3 **/package EXCEL;import ga

2015-08-15 11:34:56 5932 1

原创 JAVA实现EXCEL公式专题(六)——查找引用函数

查找引用函数主要有match、lookup、vlookup、hlookup这4种,这几个常用的方法也就不解释啦,直接上干货:/** * 项目名称: * 文件说明: * 主要特点: EXCEL公式类型:查找公式 * 版本号:1.0 * 制作人:xxx * 创建时间:2013-12-3 **/package EXCEL;import java.util.

2015-08-14 18:22:02 4472

原创 JAVA实现EXCEL公式专题(五)——数字处理函数

由于数字处理已经是非常常见的了,比如四舍五入、取整、整除等等,在这里不多说,上点简单的代码/** * 项目名称: * 文件说明:EXCEL公式类型:数字公式 * 主要特点: * 版本号:1.0 * 制作人:xxx * 创建时间:2013-12-3 **/package EXCEL;import java.util.Random;public class

2015-08-14 15:32:04 2881

原创 JAVA实现EXCEL公式专题(四)——字符串函数

直接上代码:/** * 项目名称: * 文件说明: ExCEL公式类型:字符串公式 * 主要特点: * 版本号:1.0 * 制作人:xxx * 创建时间:2013-12-3 **/package EXCEL;/** * @author lcx * */public class StringFunctions { public static String

2015-08-14 14:44:31 1980

原创 java动态缓存成长小纪(三)——缓存大小估算

我觉得对缓存认识,仅仅会写缓存及其淘汰算法是肤浅的、不负责任的。我们还需要决定,什么样的数据是需要进行缓存,多大的数据才能进行缓存。首先,缓存数据往往是读取次数非常频繁的,但是底层数据不能更新太快,否则会导致缓存的“脏读”。我在一本书上看到的是读写比要大于10。另外,缓存数据不能太大

2015-08-14 14:19:28 1728

原创 java动态缓存成长小纪(二)——缓存算法的实现:LRU、LFU、FIFO

缓存算法也叫作淘汰算法,主要是为了当JVM空间不足时,用来清理掉缓存的。那么要清理的话,我们先清理掉哪些缓存呢?按照正常人的思维,当然是接下来一段时间内不大可能用到的缓存啦!根据这个思路,我们需要做出一定的判断,判断的方法通常有3个,即LFU、LRU、FIFO。 还有个问题,什么时候进行清理?when?我觉得一般可以设置一个阈值,标记最小剩余空间,是在插入时候检查JVM剩余空间。或者还

2015-08-14 11:17:36 4010

原创 java动态缓存成长小纪(一)——创建一个简单的缓存

在实际项目中,我们经常会需要使用到缓存。一般来说,缓存介质是内存;而常见的DB将数据存储在硬盘中的;缓存读取是电脉冲,而硬盘读取是机械地读取转动的硬盘,速度差异是上百倍的。所以往往可以通过缓存,对经常用到的数据进行访问,以提高速度。        创建缓存实际上就是针对两个对象,1. Cache对象,即一个缓存对象;2. CacheManager对象,即一个管理不同缓存的对象,其核心实际上就是

2015-08-13 17:13:11 3067

原创 多线程经典问题2——子线程之间交替问题

编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。这个问题仍旧是线程间的交替控制问题,分析方法还是可以同上一篇“多线程经典问题1——主线程子线程交替问题”。

2015-08-13 09:19:50 1168

原创 多线程经典问题1——主线程子线程交替问题

提出问题: * 子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次。分析:这个实际上是很简单的问题,即子线程run,主线程阻塞--->子线程阻塞,主线程run能够使线程阻塞的方法有很多,最常见的是sleep与wait;当然,需要控制的话,用wait/notify。子线程与主线程共同操作一个

2015-08-12 21:38:20 1358

原创 整理整理生产者消费者模式,用通俗的话描述

生产者消费者模式是比较经典的多线程问题,看似 不难,但实际上有很多地方值得注意的。首先是几个问题问题1 一共有哪些对象?生产者与消费者是肯定有的,生产者与消费者之间还有一个缓冲区对象,用以保存生产与消费的目标,还有一个对象就是主线程对象,用来运行多个线程的。        追问:为什么要有一个缓冲区对象?        答:为了实现生产者与消费者解耦,互补依赖或者关联。

2015-08-12 20:35:42 831

原创 JAVA实现EXCEL公式专题(三)——四则表达式解析

四则运算表达式是EXCEL公式解析中必定会遇到的问题,那么如何进行四则运算解析?如何确定计算的优先顺序呢?方法1,将问题抛给java自带解析器 ScriptEngineimport javax.script.ScriptEngine;import javax.script.ScriptEngineManager;public class MainTest { public

2015-08-08 13:10:30 2497

原创 JAVA实现EXCEL公式专题(二)——反射解析EXCEL函数

EXCEL存在着系统自带函数与用户自定义函数,系统函数如一些数字、字符、数组、日期、筛选等函数;自定义函数用户可以通过VBA进行设计。但是无论是哪种函数,都是动态确定的,不可能在代码中写死。那么,实际运行函数时就必须用到反射。         反射需要实现的功能就是:输入:方法名、参数类型、参数值  输出:函数结果。那么可用如下代码实现:import java.lang.reflect.Met

2015-08-08 12:56:10 4927

原创 JAVA实现EXCEL公式专题(一)——EXCEL公式分类与解析步骤

1)EXCEL公式分类a. 数值: 从极端情况来说,数值也是一种最简单的公式如 A1=1;b. 简单函数:简单函数指的是参数只能是数值的函数,如公式A3(简单函数)=sum(A1:A2),,A1=1,A2=3;c. 复杂函数:复杂函数指的是参数中也存在函数的,如A4(复杂函数)=avg(A3,A1);d. 表达式:指的是四则运算表达式,如A5=(A4+A1)/A3;在鄙人现有知

2015-08-08 11:56:29 8799

原创 EXCEL单元格的获取——多例模式

由于Excel的单元格的行列与单元格是一一对应的,行与列组成的是一对联合主键,给定一个单元格行列或者给定一个单元格名称,需要找到相应的单元格;这样就形成了一种映射关系;需要使用单例模式的变式——多例模式,进行实现。       多例模式的核心是用一个HashMap来实现这种映射关系,V明显是目标单元格,K必须保存单元格的行与列一一对应信息,可以用单元格名称来表示;实现代码如下:import

2015-08-08 11:24:45 747

原创 JAVA实现Excel——Excel单元格设计

Excel底层实现是使用

2015-08-08 11:06:10 2084

原创 JAVA实现EXCEL行列号解析(二)——多格解析

当然,Excel不仅仅只能实现单格解析,还有如同多格解析的比如A1:B3;实际上是一个一维数组了,解析办法如下:/** * 比如,通过A1:B3返回的是A1,B1,A2,B2,A3,B3 * @param cellstr * @return */ public static ArrayList cellNames(String cellStr) { if(cellStr

2015-08-07 17:04:42 941

原创 JAVA实现EXCEL行列号解析(一)——单格解析

Excel每一个单元格都已一个单元格名:如:A1中A表示第一列,1表示第一行。再比如AB3表示第28列,第3行。说到底,实际上是10进制与26进制之间的转化!1. 通过单元格名获得行号如输入A12获得是第12行的。 public static int row(String cellName) { int row=0; char[] c=cellName.t

2015-08-07 16:28:15 1748

原创 Object源码研究2——getClass()方法分析

1.      关于getClass()方法?getClass()往往用于动态获得Class,可以运行如下代码进行检验/** * 项目名称: * 文件说明: * 主要特点: * 版本号:1.0 * 创建时间:2013-12-3 **//** * @author lcx * */public class MainTest { public stati

2015-08-07 15:40:16 658

原创 Object源码研究1——整体研究

1.      所有类都继承自Object吗?是的,无论是Java自带的还是我们自定义的类都继承自Object。 追问1 数组是Object吗?是的这个可以从数组的方法看出,也可以用instanceof来看,System.out.println(ainstanceof Object);打印的是true 追问2 如果类A继承类B,而类A继承Object,那不就

2015-08-07 14:28:57 386

原创 java编程怎么样才能效率更高

首先对于每一个方法必须知道方法的输入输出,

2014-10-22 09:36:14 428

原创 关于数据处理

视图处理好过于Manager处理好过于java功能业务处理,也就是数据

2014-10-17 11:30:41 354

原创 关于团队模式开发问题

对于java团队模式开发,常用工具是SVN。但是

2014-10-17 10:29:26 434

原创 项目总结

项目总结通过之前做项目,目前我们的系统实际上分为三个方面:数据、操作、显示。我发现工作量的80%是在于数据处理(数据库查询,数据缺失)。算法,显示所占的工作比例微乎其微。数据类Java方面:包括了数据库处理底层(useful包里面FinalDBFuns),数据库读写(Manager、Servlet、System),数据结构(Stru),自动事务(Transaction)。Oracl

2014-10-17 10:12:51 414

原创 oracle出现死锁情况

select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id = t2.sid  order by t2.logon_timealter system kill session 'sid,serial#'oracle出现死

2014-10-15 10:56:58 475

java进度条

非常实用的java进度条代码,可以很好的实现两种方法显示进度

2013-08-13

swing的事件

非常全面的swing事件教程!非常适合于初学者学习,下载!

2013-08-13

空空如也

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

TA关注的人

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