Java基础
ShawshankLin
这个作者很懒,什么都没留下…
展开
-
java中的匿名内部类总结
匿名内部类也就是没有名字的内部类正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口 实例1:不使用匿名内部类来实现抽象方法?12345678910111213141516abstract class转载 2015-05-30 14:18:26 · 337 阅读 · 0 评论 -
阻塞队列BlockingQueue
BlockingQueue最终会有四种状况,抛出异常、返回特殊值、阻塞、超时,下表总结了这些方法:抛出异常 特殊值 阻塞 超时插入 add(e) offer(e) put(e) offer(e, time, unit) 移除 remove() poll() take() poll(time, unit) 检查 element() peek()原创 2016-07-26 21:25:06 · 961 阅读 · 0 评论 -
哈希的存取为何快?
本周在做一个数据分析的任务,大概有一百万的数据,然后里面需要用到就是在这一百万查出的数据,,然而我用了速度最慢的一个写法,下面模拟计算过程: package com.test.set;import java.util.*;/** * Created by 林晓升 on 2016/9/4. */public class Test1 { public static v原创 2016-09-04 12:25:49 · 711 阅读 · 0 评论 -
字符串常量池初识
先科普一下字符串常量池的概念:Java中字符串对象创建有两种形式,一种为字面量形式,如String str = "abc";,另一种就是使用new这种标准的构造对象的方法,如String str = new String("abc");,这两种方式我们在代码编写时都经常使用,尤其是字面量的方式。然而这两种实现其实存在着一些性能和内存占用的差别。这一切都是源于JVM为了减少字符串对象的重复创建,其维护原创 2016-07-20 23:56:07 · 627 阅读 · 0 评论 -
Java并发编程:Lock
在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面进行阐述。本文先从synchronized的缺转载 2016-07-06 23:23:27 · 1414 阅读 · 0 评论 -
Java序列化的几种方式以及序列化的作用
文章转载自: 本文着重讲解一下Java序列化的相关内容。如果对Java序列化感兴趣的同学可以研究一下。一.Java序列化的作用有的时候我们想要把一个Java对象变成字节流的形式传出去,有的时候我们想要从一个字节流中恢复一个Java对象。例如,有的时候我们想要把一个Java对象写入到硬盘或者传输到网路上面的其它计算机,这时我们就需要自己去通过java把相应的对象写成转换成字节流。对于这种通用的操作,转载 2016-07-14 00:00:05 · 23239 阅读 · 0 评论 -
ExecutorService.invokeAny()和ExecutorService.invokeAll()的使用剖析
ExecutorService是JDK并发工具包提供的一个核心接口,相当于一个线程池,提供执行任务和管理生命周期的方法。 ExecutorService接口中的大部分API都是比较容易上手使用的,本文主要介绍下invokeAll和invokeAll方法的特性和使用。我们先提供几个任务类:一个耗时任务,一个异常任务,一个短时任务。他们会在接下来的测试代码中使用。package tasks;import转载 2016-07-02 14:38:08 · 734 阅读 · 0 评论 -
JAVA Static方法与单例模式的理解
最近用sonar测评代码质量的时候,发现一个问题,工程中一些util类,以前写的static方法都提示最好用单例的方式进行改正。 为此,我仔细想了想,发现还是很有道理的。这里谈谈我个人对static方法与单例模式的理解。所谓单例模式,我不做过多解释,推荐java设计模式之禅这本书,好好理解一下。 这里我谈谈两种写法: 以前一些公共的类,我不假思索,习惯按照如下写法去写: public cla转载 2016-02-28 11:28:53 · 570 阅读 · 0 评论 -
修改JAVA_HOME无效,java版本保持不变的问题解决
问题现象:在现公司,遇到一个问题,就是配置JAVA_HOME无效,不管怎么改,运行java -version始终是最初的那个java版本。直接在PATH环境变量里追加写死的java路径也没用。解决过程:曾经在一个人机器上发现此问题,然后又在两个机器上发现同样的问题,于是我迷茫了。接着冷静下来想想,在以前的地方从未遇到过这种情况,在现公司三个机器都遇到同样的情况,那么,很有可能就是因为现公司的系统的环转载 2016-03-07 23:23:58 · 427 阅读 · 0 评论 -
自定义服务器检验 工具类
在做项目开发过程中,我们经常是会在前端做一些数据的检验再将数据传送到服务器端,但是仅有前端检验师往往是不够的,为了增加数据的正确性我们还需要在服务器端做检验来保证这是我们想要的数据。上次一篇做spring的日志记录,用到了自定义注解然后反射获取感觉很是方便,可抽离性很好,这里也是用到同样的方法,来实现~1.建一个检验注解,用来标注需要检验的属性package com.demo.validatio原创 2016-01-17 01:06:52 · 479 阅读 · 0 评论 -
public、private、protected、default的区别
类的访问范围A、public修饰类,表示该类在所有包中可见B、(default)修饰类,表示该类仅在同一个包中可见不能用protected和private修饰类成员变量及成员方法的访问范围A、public 包内、包外,所有类中可见B、protected 包内所有类可见,包外有继承关系的子类可见(子类对象可调用)C、(default)表示默认,不仅本类访问,而且是转载 2015-11-18 10:11:44 · 817 阅读 · 0 评论 -
JAVA 泛型 - Class<T>
这两天补了一下泛型,因为底层用到泛型确实很多,也确实是很方便实用。下面我简单说说我对泛型的一个浅显的理解。通常我们在一个集合后面加上泛型,比如List,假定Apple是一个实体类, 那么这样写的想告诉编译器就是说当前这个List集合只允许存放Apple,如果现在放的是香蕉,橙子(假定香蕉橙子都是实体类),那么这是编译器就会报错,以此来组织有其他不明身份的实例添加到List里面,当然如果去掉原创 2015-06-14 10:22:04 · 487 阅读 · 0 评论 -
Java:String和Date、Timestamp之间的转换
一、String与Date(java.util.Date)互转 1.1 String -> Date Java代码 String dateStr = "2010/05/04 12:34:23"; Date date = new Date(); //注意format的格式要与日期String的转载 2015-10-27 08:01:00 · 349 阅读 · 0 评论 -
java中的Static class
Java中的类可以是static吗?答案是可以。在java中我们可以有静态实例变量、静态方法、静态块。类也可以是静态的。 java允许我们在一个类里面定义静态类。比如内部类(nested class)。把nested class封闭起来的类叫外部类。在java中,我们不能用static修饰顶级类(top level class)。只有内部类可以为static。 静态内部类和转载 2015-08-16 11:58:05 · 695 阅读 · 0 评论 -
JAVA开发读取文件的方法
JAVA开发中,免不了要读文件操作,那么JAVA开发读取文件的方法有哪些呢?读取文件首先就需要获取文件的路径。而路径分为绝对路径和相对路径。在文件系统中,绝对路径都是以盘符开始的,例如C:abc1.txt。什么是相对路径呢?相对路径就是相对与其他文件的路径。比如说有这么一个文件,它的绝对路径是C:abcdef2.txt,那么它相对与 C:abc1.txt的路径就是def2.txt(也可转载 2015-06-07 09:32:09 · 511 阅读 · 0 评论 -
Java多线程
本文转自点击打开链接本文主要讲解java多线程的基本概念,尽量用代码加以理解。最后给出阿里2015年4月份软件研发实习生笔试有关多线程的一道题的做法。多线程是实现并发机制的有效手段,与进程相比,线程是划分得比进程更小的执行单元。此外,每个进程都有专用的内存区域,即进程之间数据和状态是完全独立的,而同一进程的线程之间,线程共享内存单元(包括代码和数据)。Java多线程实现方式转载 2015-06-11 15:08:18 · 313 阅读 · 0 评论 -
使用toString犯下的错误
今天想用web项目尝试下读取文件,想不到遇到一个尴尬的问题,输出文件内容死活不对package utils;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileWriter;import java.io.IOExcepti原创 2015-06-07 10:37:55 · 1257 阅读 · 0 评论 -
反射取子类、父类 属性
class Person { int age = 6; //这里的变量需要设置成public或default,下面说明原因 public int getInfo() throws Exception { return this.age; } public int getInfo2() throws Exception { int result = 0;转载 2015-06-21 10:32:35 · 4167 阅读 · 0 评论 -
ThreadLocal使用
变量值的共享可以使用public static变量的形式,所有的线程都使用一个public static变量,而ThreadLocal是为了每个线程都有自己的共享变量,也就是存放自己线程的私有数据。原理是每个线程绑定一个ThreadLocalMap,而ThreadLocal作为ThreadLocalMap的key值放入,也就是一个线程可以绑定多个ThreadLocal对象。package com.原创 2016-11-28 22:57:21 · 989 阅读 · 0 评论