
java厚积薄发系列
文章平均质量分 92
toMatser
调试的错误就是编程给你最好的东西,因为在每个错误上面都标志着前进的一步。
---不忘初心方得始终
展开
-
java面试知识点汇总(想拿高工资的快来看看)
读大学时,有位老教授对我们做过一个测试。 老教授问:“如果你去山上砍树,正好面前有两棵树,一棵粗,另一棵较细,你会砍哪一棵?” 问题一出,大家都说:“当然砍那棵粗的了!” 老教授一笑,说:“那棵粗的不过是一棵普通的杨树,而那棵细的却是红松,现在你们会砍哪一棵?” 我们一想,红松比较珍贵,就说:“当然砍红松了,杨树又不值钱!” 老教授带着不变的微笑看原创 2017-01-19 17:07:35 · 1141 阅读 · 0 评论 -
java厚积薄发之java反射机制
一.什么是java反射机制了解什么是java反射机制,首选我们先了解一下动态语言这个概念,那么什么是动态语言呢?动态语言的定义“程序运行时,允许改变程序结构或者变量类型,这种语言称为动态语言”。 从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。 尽管在这样的定义与分类下Java不是动态语言,它却有着一个非常突出的动态相关原创 2016-07-29 11:38:59 · 539 阅读 · 0 评论 -
java并发学习之BlockingQueue实现生产者消费者
1.介绍 阻塞队列 (BlockingQueue)是Java util.concurrent包下重要的数据结构,BlockingQueue提供了线程安全的队列访问方式:当阻塞队列进行插入数据时,如果队列已满,线程将会阻塞等待直到队列非满;从阻塞队列取数据时,如果队列已空,线程将会阻塞等待直到队列非空。并发包下很多高级同步类的实现都是基于BlockingQueue实现的。JDK7提供原创 2017-03-03 11:05:57 · 9585 阅读 · 1 评论 -
Lock和synchronized之间的那点事
一.synchronized的缺陷 synchronized是java中的一个关键字,也就是说是Java语言内置的特性。那么为什么会出现Lock呢? 在上面一篇文章中,我们了解到如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁,而这里获取锁的线程释放锁只会有两种情况: 1)获取锁转载 2017-03-03 14:29:33 · 585 阅读 · 0 评论 -
最详细的Log4j使用教程
join 是两张表做交连后里面条件相同的部分记录产生一个记录集,union是产生的两个记录集(字段要一样的)并在一起,成为一个新的记录集。1.JOIN和UNION区别 join 是两张表做交连后里面条件相同的部分记录产生一个记录集, union是产生的两个记录集(字段要一样的)并在一起,成为一个新的记录集 。 JOIN用于按照ON条件联接两个表,主要有四种: INNER转载 2015-07-20 09:38:33 · 1293 阅读 · 0 评论 -
java随机生成一个6位数
什么是数据表的复合主键 所谓的复合主键 就是指你表的主键含有一个以上的字段组成 比如 create table test ( name varchar(19), id number, value varchar(10), primary key (name,id) ) 上面的name和id字段组合起来就是你test表的复合主键原创 2015-08-13 23:47:16 · 2696 阅读 · 0 评论 -
java厚积薄发之String常用方法
1.java 怎样从一个string字符串中判断某个字母出现的次数 String str = "中国 台湾 sd d"; int x=0; //遍历数组的每个元素 for(int i=0;i<=str.length()-1;i++) {原创 2015-11-05 12:43:11 · 633 阅读 · 0 评论 -
java并发之Lock与synchronized的区别
两者在锁的相关概念上区别:1.可重入锁 如果锁具备可重入性,则称作为可重入锁。像synchronized和ReentrantLock都是可重入锁,可重入性在我看来实际上表明了锁的分配机制:基于线程的分配,而不是基于方法调用的分配。举个简单的例子,当一个线程执行到某个synchronized方法时,比如说method1,而在method1中会调用另外一个synchronized方法转载 2016-12-09 18:03:46 · 4005 阅读 · 0 评论 -
我是一个线程(对理解多线程很有帮助)
第一回 初生牛犊我是一个线程,我一出生就被编了个号:0x3704,然后被领到一个昏暗的屋子里,在这里我发现了很多和我一模一样的同伴。我身边的同伴0x6900 待的时间比较长,他带着沧桑的口气对我说:“我们线程的宿命就是处理包裹。把包裹处理完以后还得马上回到这里,否则可能永远回不来了。”我一脸懵懂,“包裹,什么包裹?”“不要着急,马上你就会明白了,我们这里是不养闲转载 2016-04-05 22:58:05 · 5824 阅读 · 8 评论 -
Non-terminating decimal expansion; no exact representable decimal result异常处理
错误:今天在使用BigDecimal的时候出现一个错误:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.原因:通过BigDecimal的divide方法进行除法时当不整除,出现无限循环小数时,就会抛这原创 2016-12-07 14:13:02 · 1003 阅读 · 0 评论 -
BigDecimal用法之计算等额本金和等额本息
一.引言 《EffactiveJava》中介绍float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。但是,商业计算往往要求结果精确,这时候BigDecimal就派上大用场啦。二.常用方法add(Bi原创 2016-12-06 18:09:07 · 2391 阅读 · 1 评论 -
java厚积薄发之set去除重复object
public class SetDemo { public static void main(String[] args) { Set nameSet = new HashSet(); nameSet.add("张三"); nameSet.add("李四"); nameSet.add("王五"); nameS原创 2016-12-01 17:10:17 · 2841 阅读 · 0 评论 -
java厚积薄发之Comparable与Comparator的使用
一.java比较器 java的比较器有两类,分别是Comparable接口和Comparator接口。在为对象数组进行排序时,比较器的作用非常明显,首先来讲解Comparable接口。让需要进行排序的对象实现Comparable接口,重写其中的compareTo(T o)方法,在其中定义排序规则,那么就可以直接调用java.util.Arrays.sort()(或者C原创 2016-10-10 17:47:21 · 1094 阅读 · 1 评论 -
java递归获取某个父节点下面的所有子节点
1.menu实体类package recursion;/** * Created by tl on 2016/4/10. */public class Menu { private String id; private String name; private String pid; public String getId() { r原创 2016-04-10 17:43:44 · 59833 阅读 · 10 评论 -
java内存泄漏问题
java中会存在内存泄漏吗,请简单描述:会。java导致内存泄露的原因很明确:长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周期对象持有它的引用而导致不能被回收,这就是java中内存泄露的发生场景。 1.集合类,集合类仅仅有添加元素的方法,而没有相应的删除机制,导致内存被占用。这一点其实也不明确,这原创 2015-06-30 17:36:49 · 984 阅读 · 0 评论 -
Java 3DES加密/解密demo
1.流程DES算法提供CBC, OFB, CFB, ECB四种模式,MAC是基于ECB实现的。【Java使用3DES加密解密的流程】 ①传入共同约定的密钥(keyBytes)以及算法(Algorithm),来构建SecretKey密钥对象 SecretKey deskey = new SecretKeySpec(keyBytes, Algorithm); ②根原创 2017-11-23 17:40:53 · 22041 阅读 · 5 评论 -
jQuery函数attr()与prop()的区别
JAVA流式输入/输出原理 流是用来读写数据的,java有一个类叫File,它封装的是文件的文件名,只是内存里面的一个对象,真正的文件是在硬盘上的一块空间,在这个文件里面存放着各种各样的数据,我们想读文件里面的数据怎么办呢?是通过一个流的方式来读,咱们要想从程序读数据,对于计算机来说,无论读什么类型的数据都是以010101101010这样的形式读取的。怎么把文件里面的数据读出原创 2015-08-04 15:05:13 · 801 阅读 · 0 评论 -
org.apache.http不存在解决办法
一、认识国际化资源文件 这个类提供软件国际化的捷径。通过此类,可以使您所编写的程序可以: 轻松地本地化或翻译成不同的语言 一次处理多个语言环境 以后可以轻松地进行修改,支持更多的语言环境 说的简单点,这个类的作用就是读取资源属性文件(properties),然后根据.properties文件的名称信息(本地化信息),原创 2016-01-05 13:31:47 · 67327 阅读 · 14 评论 -
HttpsURLConnection上传文件流
项目需要对接外部接口,将图片文件流发送到外部接口,下面代码就是HttpsURLConnection如何上传文件流:/** * HttpsURLConnection上传文件流 * * @param args * @throws Exception */ public static void main(String[] args) throws原创 2017-06-26 10:29:25 · 4944 阅读 · 0 评论 -
如何切换不同版本的JDK
有些时候,sql语句where条件中,需要一些安全判断,例如按性别检索,如果传入的参数是空的,此时查询出的结果很可能是空的,也许我们需要参数为空时,是查出全部的信息。这是我们可以使用动态sql,增加一个判断,当参数不符合要求的时候,我们可以不去判断此查询条件。 下文均采用mysql语法和函数(例如字符串链接函数CONCAT)。 源代码http://limingn原创 2015-10-23 09:20:53 · 1408 阅读 · 0 评论 -
java的事件机制之程序员的一天
1.介绍 java事件机制包括三个部分:事件、事件监听器、事件源。 下面我们通过一个例子来学习,比如程序员的工作,可怜的程序员会受到各方的任务,一会项目经理让去会议室开会,一会测试人眼提出一个新bug要修复,一会呢项目组长又给分配新的开发任务,等等,忙的焦头烂额。。。 2.事件 一般继承自java.util.EventObject类,封装了事件源对象及跟事件相关的信息。package com原创 2017-04-21 14:54:57 · 1979 阅读 · 1 评论 -
java多线程面试汇总
1.线程是什么线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。Java中,每个线程都有一个调用栈,即使不在程序中创建任何新的线程,线程也在后台运行着。一个Java应用总是从main()方法开始运行,mian()方法运行在一个线程内,它被称为主线程。一旦创建一个新的线程,就产生一个新的调用栈。线程总体分两类:用户线程和守候线程。当所有用户线程原创 2017-03-02 17:57:16 · 644 阅读 · 0 评论 -
java模拟多线程socket通信
1.socket和serverSocket通信socket和serverSocket通信简单介绍如下,注意客户端与服务器端是怎么交换数据的:2.服务器端代码package com.tl.skyLine.socket;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.原创 2017-03-01 16:28:03 · 4330 阅读 · 2 评论 -
java多线程学习之死锁的模拟和避免
1.死锁死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。Java 死锁产生的四个必要条件: 1、互斥使用,即当资源被一个线程使用(占有)时,别的线程不能使用 2、不可抢占,资源请求者不能强制从资源占有者手中夺取资源,资源只能由资源占有者主动释放。 3、请求和保持,即当资原创 2017-03-03 16:45:01 · 934 阅读 · 1 评论 -
Java面试宝典系列之基础排序算法
1.介绍排序是一个在编程中间是非常基础的和重要的,网上也有很多有关排序算法的文章,再次我也是总结学习别人的知识,将别人的知识转为自己的知识,因此做此笔记,以便更好地掌握java常见排序算法。2.插入算法2.1 基本思想 每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置(从后向前找到合适位置后),直到全部插入排序完为止。 2.2 实例 2.3 算法实现public原创 2017-03-20 17:44:38 · 773 阅读 · 0 评论 -
UML简单入门
在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。1.泛化(Generalization)【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种.【箭头指向】:带三角箭头的实线转载 2017-03-13 18:03:03 · 490 阅读 · 0 评论 -
java关键字之break与continue的区别(简单明了的小例子)
一.作用与区别break的作用是跳出当前循环块(for、while、do while)或程序块(switch)。在循环块中的作用是跳出当前正在循环的循环体。在程序块中的作用是中断和下一个case条件的比较。 continue用于结束循环体中其后语句的执行,并跳回循环程序块的开头执行下一次循环,而不是立刻循环体。二.举例比较package com.waxberry原创 2015-10-19 19:48:33 · 1992 阅读 · 0 评论 -
java二分法查找两种实现方法
文件上传原创 2016-03-12 15:23:19 · 3777 阅读 · 0 评论 -
java多线程之火车售票系统模拟
1.前言为了学习多线程共享与通信,我们模拟一个火车售票系统,假设有10张火车票,三个窗口(也就是三个线程)同时进项售票。2.非同步代码package com.tl.skyLine.thread;/** * Created by tl on 17/3/6. */public class SellTicket { public static void main(Stri原创 2017-03-06 14:58:11 · 18237 阅读 · 4 评论 -
isNotEmpty 和isNotBlank的区别
StringUtils方法的操作对象是Java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出NullPointerException,而是做了相应处理,例如,如果输入为null则返回也是null等,具体可以查看源代码)。1. public static boolean isEmpty转载 2016-08-02 13:50:25 · 14584 阅读 · 1 评论 -
java8新概念之stream流
1.什么是stream大家可以把Stream当成一个高级版本的Iterator。原始版本的Iterator,用户只能一个一个的遍历元素并对其执行某些操作;高级版本的Stream,用户只要给出需要对其包含的元素执行什么操作,比如“过滤掉长度大于10的字符串”、“获取每个字符串的首字母”等,具体这些操作如何应用到每个元素上,就给Stream就好了!2.Stream与Collection比较原创 2016-08-25 18:29:14 · 5291 阅读 · 0 评论 -
java数值范围以及float与double精度丢失问题
1.java中int,float,long,double取值范围public class TestOutOfBound {public static void main(String[] args) {System.out.println(Integer.MAX_VALUE-(-Integer.MAX_VALUE)); //内存溢出System.out.println(Integer.原创 2016-05-19 15:15:21 · 20455 阅读 · 1 评论 -
面试题收集——Java基础部分(一)
1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。2、Java有没有goto? java中的保留字,现在没有在java中使用。3、说说&和&&的区别。 &和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果转载 2015-09-02 17:57:41 · 694 阅读 · 0 评论 -
什么是java web项目的根路径
在一个web项目,webapp目录只是eclipse用来管理工程项目增加的目录,当工程打包后就没有webapp目录了,webapp目录下的所有文件都会复制到项目的根目录下。我们把工程打包成war包看一下:webapp在发布的项目后是不存在的。其中/ 不是代表项目名称,是代表项目存放的路径。你的项目放在什么目录下,他就代表什么目录。例如上面的educl原创 2015-08-19 14:36:20 · 18509 阅读 · 0 评论 -
setAttribute和setParameter方法的区别
getAttribute表示从request范围取得设置的属性,必须要先setAttribute设置属性,才能通过getAttribute来取得,设置与取得的为Object对象类型 getParameter表示接收参数,参数为页面提交的参数,包括:表单提交的参数、URL重写(就是xxx?id=1中的id)传的参数等,因此这个并没有设置参数的方法(没有setParameter),而且接收转载 2015-08-27 22:13:54 · 9431 阅读 · 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();转载 2015-08-13 17:50:11 · 667 阅读 · 0 评论 -
区别java关键字this和super
初学java,经常会被两个关键字this和super混淆,今天我们就在这里简单区别一下: this表示当前对象,也就是当前类对象, super表示当前类的父类。比如你定义一个新的类:A,这个A继承了类B,也就是说B是A的父类。那么如果A中 有个方法:aa();B中也有个方法: aa();那么在A 中用this.aa()调用的就是A中定义的方法,而supe原创 2015-05-25 15:46:12 · 629 阅读 · 0 评论 -
Java Web的项目目录结构
WebRoot- -common (系统框架公用jsp 如footer.jsp,header.jsp) -images -scripts (javascript库等) -styles - (css模版) - css 风格1原创 2015-07-29 16:36:52 · 5493 阅读 · 0 评论 -
Cookie的传递流程及安全问题
Cookie在英文中是小甜品的意思,而这个词我们总能在浏览器中看到,食品怎么会跟浏览器扯上关系呢?在你浏览以前登陆过的网站时可能会在网页中出现:你好XX,感觉很亲切,就好像是吃了一个小甜品一样。 这其实是通过访问你主机里边的一个文件来实现的,因此这个文件也就被称为了Cookie。想全面了解Cookie吗?看看下文吧!一、了解Cookie 适用对象:初级读者 Cookie是当你浏览转载 2015-07-29 11:22:14 · 8582 阅读 · 1 评论 -
session,cookie的区别,安全性
一、为什么session,cookie经常会有人提到做web开发的人基本上都会用session和cookie,但是仅仅只是会用,并不知道session和cookie的真正的工作原理,都只是凭着感觉来猜测。web开发者只要利用它们来完成工作就行了,所以每个人的理解基本都会有大同小异,我想这就是session,cookie经常会被讨论的原因。本文也是根据个人经验,以及个人所学,对session原创 2015-07-28 22:34:56 · 676 阅读 · 0 评论