
JavaBase
文章平均质量分 60
itommy2016
Stay hungry,Stay foolish.
展开
-
Java解析Groovy和Shell的代码
一、使用场景 在整个系统中,通用型的代码基本没什么变化,需要变动的仅仅是业务相关的代码。那么我们就会把一些业务代码简单编码一下放在数据库中。通过数据库的配置,可以直接从数据库中查找出来编码处理一下,来调用,这样,会省去了不少重复上线的繁琐了。 二、项目实战 1.解析Groovy代码 private static GroovyClassLoader loader; /*原创 2017-07-15 10:31:28 · 1187 阅读 · 0 评论 -
java中volatile关键字的含义
在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 synchronized同步块 和 volatile关键字机制。 synchronized 同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上sync原创 2017-07-15 10:28:37 · 188 阅读 · 0 评论 -
Java中的session详解
一、Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。 二、Session和Cookie原创 2017-07-15 10:28:11 · 2337 阅读 · 0 评论 -
OOP三大特性及几大设计原则
封装: 1.隐藏实现细节;2.恰当地公开接口;3.将接口和实现分开,增强可维护性;(实现细节改变时,使用该类的客户端程序不需要改变) 继承: 1.描述联结类的层次模型;2.通过抽象,表达共性,实现类的重用;3.通过子类增加方法和属性以及重写方法,表达差异性; 多态: 1.屏蔽子类的差异性,针对共性/接口编程;(向上转型)2.增强可扩展性; 相关设计原则(设计模式一般原创 2017-07-15 10:27:44 · 2108 阅读 · 0 评论 -
Java中使用File类删除文件夹和文件
删除工具类: import java.io.File; public class DeleteAll{ public static void deleteAll(File file){ if(file.isFile() || file.list().length ==0){ file.delete(); }else{原创 2017-07-15 10:27:35 · 2880 阅读 · 0 评论 -
HashSet、LinkedHashSet、TreeSet的区别
HashSet:哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放; LinkedHashSet:以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代; TreeSet:提供一个使用树结构存储Set接口的实现,对象以升序顺序存储,访问和遍历的时间很快。 package com.test; import java.util.Hash原创 2017-07-15 10:27:02 · 1126 阅读 · 0 评论 -
Java中的网络编程
一、网络通讯方式 在现有的网络中,网络通讯的方式主要有两种: 1.TCP(传输控制协议)方式 2.UDP(用户数据报协议)方式 为了方便理解这两种方式,还是先来看一个例子。大家使用手机时,向别人传递信息时有两种方式:拨打电话和发送短信。使用拨打电话的方式可以保证将信息传递给别人,因为别人接听电话时本身就确认接收到了该信息。而发送短信的方式价格低廉,使原创 2017-07-15 10:26:56 · 375 阅读 · 0 评论 -
JUnit中Assert简单介绍
junit中的assert方法全部放在Assert类中,总结一下junit类中assert方法的分类。1.assertTrue/False([String message,]boolean condition); 判断一个条件是true还是false。感觉这个最好用了,不用记下来那么多的方法名。2.fail([String message,]); 失败,可以有消息,也可以没有消息。3.原创 2017-07-15 10:26:35 · 563 阅读 · 0 评论 -
Junit使用教程
Junit目前在一些大的公司或者相对规范的软件中使用的比较多,相当多的小公司并没有把单元测试看的太重要。在大点的公司开发人员每天上班后,第一件事情就是从svn上把自己负责的代码checkout下来,然后运行单元测试,如果单元测试通过,那么说明自己的代码没有问题,然后就在代码块上修改与添加,完成后再用junit进行测试,测试完成后如果没有问题,那么就把相应的代码块提交给svn上。 测试一般分为:原创 2017-07-15 10:26:24 · 488 阅读 · 0 评论 -
Java的部分问题和小结
2015/9/6 ThreadLocal:该类提供了线程局部变量,这样可以生成对每个线程唯一的局部标识符。 2015/9/18 1.乱码问题: js:xdata = encodeURI(encodeURI(xdata)); java:fUrl = URLDecoder.decode(URLDecoder.decode(fUrl,"utf-8"),"utf-8"); 2.数原创 2017-07-15 10:26:21 · 232 阅读 · 0 评论 -
Java中HashMap与ConcurrentHashMap的区别
从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心。 在JDK1.5中,伟大的Doug Lea给我们带来了concurrent包,从此Map也有安全的了。 ConcurrentHashMap具体是怎么实现线程安全的呢,肯定不可能是每个方法加synchronized,那样就变成了HashTable。原创 2017-07-15 10:26:15 · 283 阅读 · 0 评论 -
Java中String、StringBuffer、StringBuilder的区别
java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下,看看他们的不同与相同。 1.可变与不可变 String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的。 private final char value[]原创 2017-07-15 10:26:12 · 181 阅读 · 0 评论 -
Java的HashMap和HashTable
1. HashMap 1) hashmap的数据结构 Hashmap是一个数组和链表的结合体(在数据结构称“链表散列”),如下图示: 当我们往hashmap中put元素的时候,先根据key的hash值得到这个元素在数组中的位置(即下标),然后就可以把这个元素放到对应的位置中了。如果这个元素所在的位子上已经存放有其他元素了,那么在同一个位子上的原创 2017-07-15 10:25:36 · 194 阅读 · 0 评论 -
JAVA的整型与字符串相互转换
1.如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([String],[int radix]); 2). int i = Integer.valueOf(my_str).intValue(); 注: 字串转成 Do原创 2017-07-15 10:25:27 · 368 阅读 · 0 评论 -
Java中File类创建文件
只需要调用该类的一个方法createNewFile(),但是在实际操作中需要注意一些事项,如判断文件是否存在,以及如何向新建文件中写入数据等。 import java.io.*;public class CreateNewFile{ //该方法用于创建文件,参数分别是文件路径和文件名、文件内容,如:myfile.doc HelloJava! public void createN原创 2017-07-15 10:24:51 · 577 阅读 · 0 评论 -
Java中抽象类与接口
JAVA接口和抽象类的区别是什么? Java提供和支持创建抽象类和接口。它们的实现由共同点,不同点在于: 接口中的所有的方法隐含的都是抽象的。而抽象类中则可以同时包含抽象和非抽象的方法。 类可以实现多个接口,但只能继承一个抽象类。 类如果要实现一个接口,它必须要实现接口声明的所有原创 2017-07-15 10:28:52 · 252 阅读 · 0 评论 -
Java中的位运算符
位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面详细介绍每个位运算符。1.与运算符与运算符用符号“&”表示,其使用规律如下:两个操作数中位都为1,结果才为1,否则结果为0,例如下面的程序段。 public class data13{ p原创 2017-07-15 10:29:01 · 382 阅读 · 0 评论 -
java的守护线程与非守护线程
在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程:后台线程) 用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆: 只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作。Daemon的作用是为其他线程的运行提供便利服务,守护线程最典型的原创 2017-07-15 10:20:34 · 262 阅读 · 0 评论 -
java中集合的遍历与增强for循环的使用
java集合类的使用可以说是无处不在,总的我们可以将之分为三大块,分别是从Collection接口延伸出的List、Set和以键值对形式作存储的Map类型集合。 许多情况需要我们遍历出集合中的元素,并做相应的处理。 下面对各种类型的集合的遍历做一些总结,关于增强for循环,需要注意的是,使用增强for循环无法访问数组下标值,对于集合的遍历其内部采用的也是Iterator的相关方法。原创 2017-07-15 10:20:23 · 551 阅读 · 0 评论 -
Java中class的修饰及成员变量的修饰
Java抽象类的构造方法和普通类的构造方法一样都是用来初始化类只是抽象类的构造方法不能直接调用,因为抽象类不能实现实例但是一旦一个普通类继承了抽象类,便也可以在构造函数中调用其抽象类的构造函数,也可以使用其方法可以理解为:抽象类就是一个不能实例化的类,不过如果方法加了abstract那么就必须在子类里面重写了 类的修饰符整合 一.类类的修饰符:Public : 可以在其他任何类中使用,默认原创 2017-07-15 10:21:29 · 1034 阅读 · 0 评论 -
Java中locks与synchronized及其异同
关键字:synchronized、java.util.concurrent.locks.Lock、同步、并发、锁 一、【引言】 JDK1.5之前,实现同步主要是使用synchronized,而在JDK1.5中新增了java.util.concurrent包及其两个子包locks和atomic,其中子包locks中定义了系列关于锁的抽象的类。本文主要介绍java.util.concurre原创 2017-07-15 10:21:24 · 375 阅读 · 0 评论 -
Java中POJO及其细分XO、DAO的概念
各层命名规约: A) Service/DAO 层方法命名规约 1) 获取单个对象的方法用 get 做前缀。 2) 获取多个对象的方法用 list 做前缀。 3) 获取统计值的方法用 count 做前缀。 4) 插入的方法用 save(推荐)或 insert 做前缀。 5) 删除的方法用 remove(推荐)或 delete 做前缀。 6) 修改的方法用 update 做前缀。 B) 领域模型命原创 2017-07-15 10:30:50 · 723 阅读 · 0 评论 -
Java中的static
在《Java编程思想》P86页有这样一段话: “static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。” 简而言之就是: 方便在没有创建对象的情况下来进行调用(方法/变量)。 很显然,被static关键字修饰的原创 2017-07-15 10:30:38 · 257 阅读 · 0 评论 -
java树的遍历
java二叉树的遍历算法: http://blog.sina.com.cn/s/blog_70600f720100ujnp.html原创 2017-07-15 10:30:29 · 341 阅读 · 0 评论 -
Java中的HashMap的2种遍历方式比较
首先我们准备数据,准备一个map Map map = new HashMap(); for (int i = 0; i < 10; i++) { map.put(i + "", "value" + i); } 然后我们采用传说中的key遍历: 步骤:先弄成key set,然后遍历key set 通过key从map中获取value Iterator it原创 2017-07-15 10:30:26 · 268 阅读 · 0 评论 -
Java面试宝典(4)Java基础部分
71、说出一些常用的类,包,接口,请各举5个 要让人家感觉你对java ee开发很熟,所以,不能仅仅只列core java中的那些东西,要多列你在做ssh项目中涉及的那些东西。就写你最近写的那些程序中涉及的那些类。 常用的类:BufferedReader BufferedWriter FileReader FileWirter String Integer java.util.Date,Syste原创 2017-07-15 10:30:22 · 280 阅读 · 0 评论 -
Java技术中的三大特性
1.虚拟机 Java虚拟机JVM(Java Virtual Machine)在Java编程里面具有非常重要的地位,约相当于前面学到的Java运行环境,虚拟机的基本功能如下: (1):通过ClassLoader寻找和装载class原创 2017-07-15 10:30:10 · 319 阅读 · 0 评论 -
Java的动态代理Proxy
概念梳理: 1.什么是动态代理? 答:动态代理可以提供对另一个对象的访问,同时隐藏实际对象的具体事实。代理一般会实现它所表示的实际对象的接口。代理可以访问实际对象,但是延迟实现实际对象的部分功能,实际对象实现系统的实际功能,代理对象对客户隐藏了实际对象。客户不知道它是与代理打交道还是与实际对象打交道。2.为什么使用动态代理? 答:因为动态代理可以对请求进行任何处理 3.使用它有哪些原创 2017-07-15 10:29:55 · 335 阅读 · 0 评论 -
Java关于线程池的使用
一、四种线程池创建的方式 Java通过Executors提供四种线程池,分别为: newCachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。 newScheduledThreadPool 创建一个定长线程池,支持定原创 2017-07-15 10:29:49 · 311 阅读 · 0 评论 -
Java调用DB的存储过程
2015/12/7 使用数据库存储过程的java代码: try { con = (Connection) DBProxy.getConnection(null); cStm = con.prepareCall("{call web_show_proc("+("sp".equalsIgnoreCase(showPara[0])?"true":"fals原创 2017-07-15 10:29:28 · 453 阅读 · 0 评论 -
Resultset获取行数和列数
在Java中,获得ResultSet的总行数的方法有以下几种。 第一种:利用ResultSet的getRow方法来获得ResultSet的总行数 Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rset =原创 2017-07-15 10:29:25 · 3152 阅读 · 0 评论 -
粗糙的区别prepareStatement:(为Statement的子类)与Statement
区别: prepareStatement:(为Statement的子类) conn = DBFactory.getInstance().getImpl().getConnection();//方式一:(不推荐)//pstmt = conn.prepareStatement(" update "+tb+" set WDNR=? where "+bh+"=?");//方式二:pstmt.原创 2017-07-15 10:24:40 · 311 阅读 · 0 评论