自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 Java 中的接口和抽象类

抽象是面向对象设计的几大特点之一,在Java中的体现则是抽象类和接口。这两者十分的相似,想很多初学者甚至接触抽象是面向对象设计的几大特点之一,在Java中的体现则是抽象类和接口。这两者十分的相似,想很多初学者甚至接触Java几年的人也很难分清他们。今天笔者在查看集合类相关的代码的时候,发现了有部分是接口如List、Map等,有部分是抽象类如AbstractList、AbstractSet等,由于对两者不是十分的清楚,比较迷惑。所以今天笔者在本文则主要介绍下这两者的区别。

2016-12-08 23:05:28 249

原创 Java 中 char 和 String 的细节和使用注意

学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438 我们一起学Java!char 数据类型的使用注意Unicode 字符集UTF-16不建议在 Java 程序中使用 char 数据类型String 的细节获取字符串长度尽量不要使用 String 来存储密码等敏感信息char 数据类型的使用注意 在 ...

2016-12-08 11:47:58 138

原创 Java高级特性之枚举学习总结

学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438 我们一起学Java!在Java SE5之前,我们要使用枚举类型时,通常会使用static final 定义一组int常量来标识,代码如下public static final int MAN = 0;public static final int ...

2016-12-08 10:55:16 173

原创 Java异常的深入研究与分析

学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438 我们一起学Java!前言本文是异常内容的集大成者,力求全面,深入的异常知识研究与分析。本文由金丝燕网独家撰写,参考众多网上资源,经过内容辨别取舍,文字格式校验等步骤编辑而成,以飨读者。对于本文的内容,建议小白需要多多思考力求掌握,对于老手只需意会温故...

2016-12-08 10:54:37 86

原创 20个高级Java面试题汇总

这是一个高级Java面试系列题中的第一部分。这一部分论述了可变参数,断言,垃圾回收,初始化器,令牌化,日期,日历等等Java核心问题。什么是可变参数?可变参数允许调用参数数量不同的方法。请看下面例子中的求和方法。此方法可以调用1个int参数,或2个int参数,或多个int参数。 //int(type) followed ... (three dot's) is syntax of a variab...

2016-12-08 10:17:47 147

原创 Java 中 char 和 String 的细节和使用注意

学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:279558494 我们一起学Java!char 数据类型的使用注意Unicode 字符集UTF-16不建议在 Java 程序中使用 char 数据类型String 的细节获取字符串长度尽量不要使用 String 来存储密码等敏感信息char 数据类型的使用注意 在 ...

2016-12-08 10:16:37 207

原创 编程思想之多线程与多进程系列

线程优先级现在主流操作系统(如Windows、Linux、Mac OS X)的任务调度除了具有前面提到的时间片轮转的特点外,还有优先级调度(Priority Schedule)的特点。优先级调度决定了线程按照什么顺序轮流执行,在具有优先级调度的系统中,线程拥有各自的线程优先级(Thread Priority)。具有高优先级的线程会更早地执行,而低优先级的线程通常要等没有更高优先级的可执行线程时才会...

2016-12-07 22:56:35 169

原创 Java 序列化与反序列化

学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438 我们一起学Java!1、什么是序列化?为什么要序列化?Java 序列化就是指将对象转换为字节序列的过程,而反序列化则是只将字节序列转换成目标对象的过程。我们都知道,在进行浏览器访问的时候,我们看到的文本、图片、音频、视频等都是通过二进制序列进行传输的...

2016-12-07 18:45:16 110

原创 Java 本地接口 JNI 使用详解

学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438 我们一起学Java!对于java程序员来说,java语言的好处和优点,我想不用我说了,大家自然会说出很多一套套的。但虽然我们作为java程序员,但我们不得不承认java语言也有一些它本身的缺点。比如在性能、和底层打交道方面都有它的缺点。所以java就...

2016-12-07 17:13:17 167

原创 Java设计模式:观察者

简单来说,观察者模式=发布者+订阅者。下面是一个有关猎头的典型的例子。在下面这张图当中有两个角色:猎头和寻找工作的人。找工作的人向猎头订阅,告知自己希望得到一份工作,当有新的工作机会的时候,猎头就会把这个信息通知给曾经向他订阅过的人。 Java代码 Subject接口:public interface Subject { public void registerObserver(O...

2016-12-07 17:13:02 127

原创 Java程序员的日常——经验贴(纯干货)

学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438 我们一起学Java!工作当中遇到的事情比较杂,因此涉及的知识点也很多。这里暂且记录一下,今天遇到的知识点,纯干货~关于文件的解压和压缩如果你的系统不支持tar -z命令如果是古老的Unix系统,可能并不认识tar -z命令,因此如果你想要压缩或者解压...

2016-12-07 16:10:07 201

原创 Java动态代理与CGLIB

学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438 我们一起学Java!1.静态代理模式因为需要对一些函数进行二次处理,或是某些函数不让外界知道时,可以使用代理模式,通过访问第三方,间接访问原函数的方式,达到以上目的,来看一下代理模式的类图:interface Hosee{ String sa...

2016-12-07 16:09:18 83

原创 Java图形用户界面之列表框

列表框通过Swing组件JList产生,其总是在屏幕上占据固定行数的空间。如果要得到列表框中被选中的元素, 只需调用getSelectedValuesList(),它可以产生一个字符串数组 ,内容为被选中的元素名称。 JList组件允许多重选择 ;如果按住Ctrl键,可以选中所有点击的元素;如果选中一个元素,按住Shift键并单击另一个元素,那么这两个元素之间的所有元素都被选中;要从选中的元素中去...

2016-12-07 11:39:47 637

原创 Java 集合框架

Java集合框架大致可以分为五个部分:List列表,Set集合、Map映射、迭代器、工具类List 接口通常表示一个列表(数组、队列、链表栈),其中的元素 可以重复 的是:ArrayList 和LinkedList,另外还有不常用的Vector。LinkedList实现来Queue接口,因此也可以作为队列使用。Set接口通常表示一个集合,其中的元素 不可以重复 (通过hashcode和equals...

2016-12-07 11:37:50 76

原创 Java高级特性之反射学习总结

老规矩我们还是先提出几个问题,一门技术必然要能解决一定的问题,才有去学习掌握它的价值一、 什么是反射?二、反射能做什么?一、 什么是反射?用在Java身上指的是我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体、或对其fields设值、或唤起其meth...

2016-12-07 10:13:33 104

原创 8 个最好的 Java RESTful 框架

过去的每一年,涌现出越来越多的Java框架。就像JavaScript,每个人都认为他们知道一个好的框架的功能应该是怎么样的。连我的老祖母现在也使用 一个我从来没有听说过而且可能永远不会使用的框架。玩笑归玩笑,可以做几乎任何事的臃肿的框架市场已经饱和,,但是如何评判呢?这篇文章旨在提供目前最好的 Java RESTfulful 框架。我只介绍轻量级的产品, 略过了那些臃肿的过度设计的框架。同时,我只...

2016-12-07 10:00:50 157

原创 经典排序算法总结--冒泡、快排、插入、希尔、归并、选择

前言互联网面试,排序是经典问题,总结几种经典排序代码,方便后期查阅。冒泡排序 对纵向排列的关键字序列,按照自下而上的扫描方向对两两相邻的关键字进行比较, 若为逆序(k_j < k_j-1 ),则将两个记录交换位置; 重复上述扫描排序过程,直至没有记录需要交换为止。public static void bubbleSort(int[] arr, int size) { boole...

2016-12-07 09:59:53 143

原创 浅谈Java中的锁

锁在并发编程中的重要性不言而喻, 但是如何更好地选择, 下面借几个问答来开始吧! 后续我会再写一篇有关于无锁队列的Blog1.synchonrize如何更好地使用?谈到这个问题, 主要先从这几个方面来入手:线程的几种状态 synchonrize的几种使用方法比较 synchonrize和volatile比较 synchonrize和juc中的锁比较 用了锁就真的没有并发问题了么? 1.1...

2016-12-06 17:51:33 245

原创 Java 抽象类与oop三大特征

面向对象主要有三大特性: 继承和多态、 封装 。一、抽象类在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它 只有声明,而没有具体的实现 。抽象方法的声明格式为:abstract void fun();抽象方法 必须用 abstract关键字进行修饰 。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为 抽象类中含有无具体实现的方法,所...

2016-12-06 17:50:45 174

原创 Java读取文件夹大小的6种方法及代码

这篇文章介绍了JAVA读取文件夹大小的几种方法实例,有需要的朋友可以参考一下。(一)单线程递归方式package com.taobao.test;import java.io.File;public class TotalFileSizeSequential { public static String fileName = "C:\\Documents and Settings\\A...

2016-12-06 16:51:09 174

原创 Java程序员应当知道的10个面向对象设计原则

面向对象设计原则是OOPS编程的核心, 但我见过的大多数Java程序员热心于像Singleton (单例) 、 Decorator(装饰器)、Observer(观察者) 等设计模式,而没有把足够多的注意力放在学习面向对象的分析和设计上面。学习面向对象编程像“抽象”、“封装”、“多态”、“继承” 等基础知识是重要的,但同时为了创建简洁、模块化的设计,了解这些设计原则也同等重要。我经常看到不同经验水平...

2016-12-06 16:50:21 68

原创 Java 程序员们值得一看的好书推荐

“学习的最好途径就是看书“,这是我自己学习并且小有了一定的积累之后的第一体会。个人认为看书有两点好处:能出版出来的书一定是经过反复的思考、雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料 对着书上的代码自己敲的时候方便 “看完书之后再次提升自我的最好途径是看一些相关的好博文“,我个人认为这是学习的第二步,因为一本书往往有好几百页,好的博文是自己看书学习之后的一些总结和提炼,对于...

2016-12-06 15:52:13 200

原创 35 个 Java 代码性能优化总结

前言代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优...

2016-12-06 15:24:55 59

原创 Java异常的深入研究与分析

前言本文是异常内容的集大成者,力求全面,深入的异常知识研究与分析。本文由金丝燕网独家撰写,参考众多网上资源,经过内容辨别取舍,文字格式校验等步骤编辑而成,以飨读者。对于本文的内容,建议小白需要多多思考力求掌握,对于老手只需意会温故知新。对于本文的内容,属于基础知识研究范畴,切勿以为读完此文就能将异常知识掌握到家。切记:操千曲而后晓声,观千剑而后识器,所以我觉得没有大量的源码阅读经验,你很难知道什么...

2016-12-06 12:06:57 71

原创 Java 接口——面向对象的精髓

接口有何用?面试宝典上背下来的总结,你真的明白吗? 接口&工厂方法 其实很简单>。<~ 什么是接口 先看看生活中的接口,比如USB接口。 USB接口的设计者在最初就知道USB能支持这么多功能吗?他们是怎样未卜先知地设计的呢?其实他们也不知道以后USB上会连什么设备,他们只是定义了一个数据传输与供电的标准而已。Java中也是类似的,定义了接口,就等于定义了调用对象的标...

2016-12-05 20:59:42 145

原创 Java核心技术点之泛型

Why ——引入泛型机制的原因 假如我们想要实现一个String数组,并且要求它可以动态改变大小,这时我们都会想到用ArrayList来聚合String对象。然而,过了一阵,我们想要实现一个大小可以改变的Date对象数组,这时我们当然希望能够重用之前写过的那个针对String对象的ArrayList实现。在Java 5之前,ArrayList的实现大致如下:1 public class Arra...

2016-12-05 14:23:00 89

原创 Java引用和clone方法总结

前几天在写WORKS APPLICATIONS的两题笔试题,就没空写博客了。现在写完了,先分享一下第一个题Magic Cube里遇到的知识点“引用和clone方法”。详细的题解请关注后续博客。 先来说说我是怎么遇到这个知识点的,在解题过程中,我写了一个包含三维数组的类和一个递归方法,大概如下:publicclassCube{privateintlen;//立方体边长privateint[][...

2016-12-05 11:49:48 129

原创 Java 中 char 和 String 的细节和使用注意

char 数据类型的使用注意Unicode 字符集UTF-16不建议在 Java 程序中使用 char 数据类型String 的细节获取字符串长度尽量不要使用 String 来存储密码等敏感信息char 数据类型的使用注意 在 Java 中使用 char 数据类型来表示字符,但是 char 类型并不能表示一切字符。Unicode 字符集首先需要知道我们在 Java 中使用的是 Unicode 字...

2016-12-05 11:45:44 56

原创 Java多态性理解

Java中多态性的实现什么是多态面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。 多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用) 实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际...

2016-12-03 11:54:45 68

原创 Java集合对象排序

1.List排序这个和数组的排序又不一样了。其实Java针对数组和List的排序都有实现,对数组而言,你可以直接使用Arrays.sort,对于List和Vector而言,你可以使用Collections.sort方法。Java API针对集合类型的排序提供了2个方法:java.util.Collections.sort(java.util.List)java.util.Collections.s...

2016-12-02 18:25:07 53

原创 Java 实现单例的难点

有简单又高效的方法可以实现单例模式,但没有一种方式能在任何情况下都确保单例的完整性。单例模式是指某个类只被实例化一次,用来表示全局或系统范围的组件。单例模式常用于日志记录、工厂、窗口管理器和平台组件管理等。我认为要尽量避免使用单例模式,因为一旦实现就很难改变或重载,而且会造成编写测试用例困难、代码结构糟糕等问题。另外,下面文章中的单例模式是不安全的。人们花大量的精力研究怎样更好地实现单例模式,但有...

2016-12-02 16:52:51 92

原创 Java高级特性之枚举学习总结

在Java SE5之前,我们要使用枚举类型时,通常会使用static final 定义一组int常量来标识,代码如下public static final int MAN = 0;public static final int WOMAN = 1;相信很多小伙伴,在实际开发中也是那么干的,既然这样已经能实现枚举的功能,为什么还要引入枚举呢?我们接着往下看当我们需要是同这组“int枚举”是代码如下...

2016-12-02 12:28:45 75

原创 Java调用MySQL存储过程

Java调用MySQL的存储过程,需要用JDBC连接,环境eclipse首先查看MySQL中的数据库的存储过程,接着编写代码调用mysql> show procedure status;+------+-------------+-----------+----------------+---------------------+---------------------+--------...

2016-12-02 11:24:10 116

原创 20个高级Java面试题汇总

这是一个高级Java面试系列题中的第一部分。这一部分论述了可变参数,断言,垃圾回收,初始化器,令牌化,日期,日历等等Java核心问题。什么是可变参数?可变参数允许调用参数数量不同的方法。请看下面例子中的求和方法。此方法可以调用1个int参数,或2个int参数,或多个int参数。 //int(type) followed ... (three dot's) is syntax of a variab...

2016-12-01 15:40:24 78

原创 20个高级Java面试题汇总

这是一个高级Java面试系列题中的第一部分。这一部分论述了可变参数,断言,垃圾回收,初始化器,令牌化,日期,日历等等Java核心问题。什么是可变参数?可变参数允许调用参数数量不同的方法。请看下面例子中的求和方法。此方法可以调用1个int参数,或2个int参数,或多个int参数。 //int(type) followed ... (three dot's) is syntax of a variab...

2016-12-01 15:39:18 55

原创 Java泛型

一. 泛型概念的提出(为什么需要泛型)?首先,我们看下下面这段简短的代码:public class GenericTest { public static void main(String[] args) { List list = new ArrayList(); list.add("qqyumidi"); list.add("corn"...

2016-12-01 12:21:40 56

原创 学习Java分为几个阶段,分别是什么?

多年前我自学的时候是很茫然,上网问问题,总是一堆外行的人说很难啊,你需要这样需要那样,不然就是,一堆人说一些空话,多看多写,买好书,我很无语,除了这些就没有自己的一些想法吗? 首先很多人认为学JAVA要C的基础,但是实际上不用,学开车,我不想先学骑自行车,没有必要。第一阶段: 1. JAVA语法和基础,包括循环。。和类的相关内容,如实现,继承什么的 2. 你需要掌握几个重点的集合,L...

2016-11-30 16:03:43 470

原创 Java中的继承与组合

本文主要说明Java中继承与组合的概念,以及它们之间的联系与区别。首先文章会给出一小段代码示例,用于展示到底什么是继承。然后演示如何通过“组合”来改进这种继承的设计机制。最后总结这两者的应用场景,即到底应该选择继承还是组合。1、继承假设我们有一个名为Insect(昆虫)的类,这个类包含两个方法:1)移动move(); 2)攻击attack()。 代码如下:class Insect { p...

2016-11-30 13:34:29 77

原创 Java多线程简介

Java中内置了对多线程的支持,让多线程的开发方便很多,但同时也带来了另外的复杂,线程间的交互以及很多的不确定性让多线程又显得很复杂。在此只是针对Java中多线程的基础做些说明,有关线程和进程的区别,以及多线程的好处和更深层的暂不多说。线程的状态线程的状态定义在Thread类中一个State枚举类型:新建状态(NEW),通过 new Thread 新建的线程处于新建状态,通常会调用start()方...

2016-11-30 11:26:42 60

原创 如何防止单例模式被JAVA反射攻击

单例模式相信大家都知道,用过的人不在少数。之前写过一篇博文《singleton模式四种线程安全的实现》,讲诉了单例模式的四种写法,并指出占位符模式的写法比较ok,详见如下:package com.effective.singleton; public class Elvis { private static boolean flag = false; priva...

2016-11-30 10:31:37 75

空空如也

空空如也

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

TA关注的人

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