随笔分类 -  Java

摘要:自动类型转换遵循下面的规则: 若参与运算的数据类型不同,则先转换成同一类型,然后进行运算。 转换按数据长度增加的方向进行,以保证精度不降低。例如int型和long型运算时,先把int量转成long型后再进行运算。 所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成 阅读全文
posted @ 2017-03-24 11:24 陈泽泽 阅读(1901) 评论(0) 推荐(0) 编辑
摘要:G1收集器(Garbage First)是Java虚拟机中垃圾收集器的一种。 G1收集器(Garbage First)是Java虚拟机中垃圾收集器的一种。 G1收集器是Java虚拟机的垃圾收集器理论进一步发展的产物,它与前面的CMS收集器相比有两个显著的改进:一是G1收集器是基于“标记-整理”算法实 阅读全文
posted @ 2017-03-24 10:33 陈泽泽 阅读(4799) 评论(0) 推荐(1) 编辑
摘要:异常处理简介 异常在java的开发中可能没有那么被重视。一般遇到异常,直接上抛,或者随便catch一下处理之后对于程序整体运行也没有什么大的影响。不过在企业级设计开发中,异常的设计与处理的好坏,往往就关系着这个系统整体的健壮性。一个好的系统的异常对于开发者来说,处理应该统一,避免各处散落很多异常处理 阅读全文
posted @ 2017-03-24 09:35 陈泽泽 阅读(555) 评论(0) 推荐(0) 编辑
摘要:创建时: Statement statement = conn.createStatement(); PreparedStatement preStatement = conn.prepareStatement(sql); 执行时: ResultSet rSet = statement.execut 阅读全文
posted @ 2017-03-22 17:18 陈泽泽 阅读(503) 评论(0) 推荐(0) 编辑
摘要:Nutch简介 Nutch 是一个开源Java实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。 Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。 尽管Web搜索是漫游Internet的基本 阅读全文
posted @ 2017-03-20 11:04 陈泽泽 阅读(367) 评论(0) 推荐(0) 编辑
摘要:/** * @Title: CountFileNum.java * @Package test * @Description: TODO(用一句话描述该文件做什么) * @author A18ccms A18ccms_gmail_com * @date 2017年3月20日 上午8:32:38 * @version V1.0 */ package test; impo... 阅读全文
posted @ 2017-03-20 08:58 陈泽泽 阅读(149) 评论(0) 推荐(0) 编辑
摘要:类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶段。其中准备、验证 阅读全文
posted @ 2017-03-17 10:44 陈泽泽 阅读(256) 评论(0) 推荐(0) 编辑
摘要:1.继承Thread类,重载run方法; Thread t = new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub } }); 2.实现Runnable接口,实现ru 阅读全文
posted @ 2017-03-17 10:20 陈泽泽 阅读(448) 评论(0) 推荐(0) 编辑
摘要:以下程序执行的结果是: class X{ Y y=new Y(); public X(){ System.out.print("X"); } } class Y{ public Y(){ System.out.print("Y"); } } public class Z extends X{ Y y 阅读全文
posted @ 2017-03-17 10:19 陈泽泽 阅读(203) 评论(0) 推荐(0) 编辑
摘要:在程序启动的时候就创建若干线程来响应处理,它们被称为线程池,里面的线程叫工作线程 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 第三:提高线程的可管理性。 常用线程池:ExecutorServi 阅读全文
posted @ 2017-03-14 15:13 陈泽泽 阅读(8102) 评论(1) 推荐(1) 编辑
摘要:parseInt()方法首先查看位置0处的 字符,判断它是否是个有效数字;如果不是,该方法将返回NaN,不再继续执行其他操作。但如果该字符是有效数字,该方法将查看位置1处的字符,进行同样的 测试。这一过程将持续到发现非有效数字的字符为止,此时parseInt()将把该字符之前的字符串转换成数字。 阅读全文
posted @ 2017-03-13 15:20 陈泽泽 阅读(681) 评论(0) 推荐(0) 编辑
摘要:Collection List LinkedList 非同步 ArrayList 非同步,实现了可变大小的元素数组 Vector 同步 线程安全 Stack Set 不允许有相同的元素 Map Hashtable 同步,实现一个key--value映射的哈希表 HashMap 非同步, WeakHa 阅读全文
posted @ 2017-03-10 14:45 陈泽泽 阅读(222) 评论(0) 推荐(0) 编辑
摘要:引言: 在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的Synchronized,它在多处理器开发中保证了共享变量的“可见性”。 可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。 Volatile的官方定义 Jav 阅读全文
posted @ 2017-03-03 11:27 陈泽泽 阅读(610) 评论(0) 推荐(0) 编辑
摘要:Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class),有些地方也翻译为外覆类或数据类型类。 包装 阅读全文
posted @ 2017-03-03 09:17 陈泽泽 阅读(259) 评论(0) 推荐(0) 编辑
摘要:迭代器是一个对象,它的工作时遍历并选择序列中的对象,而客户端程序员不必知道或关心该序列底层的结构,此外,迭代器通常被称为轻量级对象:创建它的代价小。因此,经常可以见到对迭代器有些奇怪的限制,例如Java的Iterator只能单向移动,这个Iterator只能用来: (1)使用方法iterator() 阅读全文
posted @ 2017-02-27 11:28 陈泽泽 阅读(364) 评论(0) 推荐(0) 编辑
摘要:免安装的tomcat双击startup.bat后,启动窗口一闪而过,而且tomcat服务未启动,下面与大家分享下原因及解决方法 免安装的tomcat双击startup.bat后,启动窗口一闪而过,而且tomcat服务未启动。 原因是:在启动tomcat是,需要读取环境变量和配置信息,缺少了这些信息, 阅读全文
posted @ 2017-02-20 15:09 陈泽泽 阅读(424) 评论(0) 推荐(0) 编辑
摘要:验证码识别,爬虫永远的话题~ 用打码兔总体的体验就是单线程速度太慢~ 测试结果如下: 用多线程测试,明显快多了 测试30个账号,平均每个3秒 阅读全文
posted @ 2017-02-15 19:23 陈泽泽 阅读(3532) 评论(0) 推荐(0) 编辑
摘要:大多数 JVM 将内存区域划分为 Method Area(Non-Heap)(方法区),Heap(堆),Program Counter Register(程序计数器), VM Stack(虚拟机栈,也有翻译成JAVA 方法栈的),Native Method Stack (本地方法栈) 其中Metho 阅读全文
posted @ 2017-02-13 16:37 陈泽泽 阅读(2900) 评论(0) 推荐(0) 编辑
摘要:什么是多态 1.面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。 2.多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用) 3.实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根... 阅读全文
posted @ 2017-02-13 16:10 陈泽泽 阅读(17238) 评论(0) 推荐(2) 编辑
摘要:submit方法会产生Future对象,它用Callable返回结果的特定类型进行了参数化,可以用isDone()的方法来查询Future是否已经完成。当任务完成是,它具有一个结果,可以调用get()方法来获取该结果。 用isDone()的方法来查询Future是否已经完成 改进版: Runnabl 阅读全文
posted @ 2017-02-08 11:10 陈泽泽 阅读(291) 评论(0) 推荐(0) 编辑