自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

请叫我王老魔

菜鸟要慢慢学着飞起来

  • 博客(29)
  • 收藏
  • 关注

原创 图像用户界面GUI

Java的图像界面一般分为两种: AWT(Abstract Window Toolkit) ,抽象窗口工具集,第一代的Java GUI 组件,是重量级的,依赖于底层和操作系统,同样的代码,在不同的系统上运行,就界面而言,感官上看起来是不一样的。基本的AWT库处理用户界面元素的方法是把这些元素的创建和行为委托给每个目标平台(Windows,Unix,等)的本地GUI工具进行处理的。 Swing,不

2017-02-28 21:45:11 449

原创 Java异常处理机制

异常是 一个类class java.lang.Exception异常分为两种: a) Checked exception (非 Runtime Exception) 非运行时异常 b) Unchecked exception(Runtime Exception) 运行时异常异常的继承关系: 1. Java中所有的异常类都会直接或间接地继承自Exception。 2. Ru

2017-02-28 14:58:49 294

转载 JUnit 单元测试的简单使用

这篇文章转载自: 讲解了一些单元测试的基础 http://blog.csdn.net/mao520741111/article/details/51462215还有一篇:如何在Eclipse中使用JUnit4进行单元测试(初级篇),快捷的创建单元测试 http://blog.csdn.net/andycpp/article/details/1327147/我们写单元测试,一般都会用到一个或多

2017-02-28 10:14:28 474

原创 注解 Annotation 详解

JDK1.5之后,引入了元数据的概念,也就是Annotation(注解),其实它是代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。可以帮助程序在编译的时候进行检查注解的作用有以下三个: 1. 编写文档:通过代码里标识的注解生成文档。 2. 代码分析:通过代码里标识的注解对代码进行分析。 3. 编译检查:通过代码里标识的注解让编译器能实现基本的编译检查。几种常

2017-02-27 22:06:27 662

原创 代理模式详解

代理模式的作用: 为其他对象提供了一个代理以控制对这个对象的访问 在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理模式可以在客户端和目标对象之间起到中介的作用。代理模式涉及到的角色: 抽象角色: 声明真实对象和代理对象的共同接口代理角色: 代理对象内部含有对真实对象的引用,从而可以操作真实对象; 同时 代理对象提供与真实对象相同的接口以便在任何时候都能代替真实对象; 同时,代

2017-02-26 21:53:35 476 1

原创 Java 中的反射机制

首先先讲解一下动态语言和非动态语言: 动态语言:在程序运行期间,允许改变程序结构或者变量类型 例如:Perl, Python,Ruby 与之相对的是静态语言,C++,Java,C#在动态语言中允许 var a=1; a=”aaaa”; a=false;反射机制(Reflection)基本概念java 的反射机制:动态获取类的信息以及动态调用对象的方法。 对于任意一个对象都够知道这个

2017-02-26 18:56:33 245

原创 枚举类型 和 可变参数

定义可变参数: 一定要放在所有参数的最后面, sum(不可变类型,可变类型int… nums),同时可变参数最多只能有一个 可以一个个参数传进去,也可以以数组的方式传进去。 格式 type … name// 这样定义意思是sum可以接收多个整型的的变量public static int sum(int... nums){ int summ = 0; // 这样来使用 for

2017-02-26 11:08:17 2310

原创 三种遍历:for,for-Each,Iterator

for-Each循环: 增强的for循环,写起来比较简洁,其实跟普通的for循环性能上没啥区别所以到现在遍历的方式有三种: for :当需要数组的下标信息时用它 for-Each : Iterator // 对于一位数组的遍历 int[] array={1,2,3,4,5}; // for(对象的类型type element :array)

2017-02-25 20:54:33 421

原创 泛型详解

通过引入泛型,我们可以获得的优势: 泛型是在JDK 1.5之后引入的 编译时类型的安全 和运行时更小的抛出ClassCastExceptions的可能。泛型是解决什么问题的, 我们都知道一个集合可以添加不同类型的对象,但是在获取对象的时候,必须要知道所有对象的类型才可以取出来,存进去没什么代价,但是取出来的时候代价太大,泛型就是解决集合中存在不同类型对象时的存取问题。public class

2017-02-24 11:27:23 382

原创 Vector 和 HashTable

其实Vector 和 HashTable现在已经很少使用了,他们是同属于一个时代的,一般我们使用ArrayList 和HashMap 而且建议使用这两个,他们两个是一个时代的。Vector Vector 和ArrayList的区别: Vector是线程同步的,而ArrayList不是线程同步的,其他方面的实现两个基本一样,从下面的代码可以看到,它的底层实现也是数组。protected Objec

2017-02-24 11:09:43 2434

原创 HashMap 和HashSet 源代码详解

HashSet 源代码详解第一: 构造函数,可以看到其构造函数内部是new了一个HashMap, 所以HashSet 的底层实现是通过Map实现的 public HashSet() { map = new HashMap<>(); }第二: add方法,可以看到,它是通过map的put方法放进去的,里面有两个参数,一个是e:我们传进去的对象,另外一个是一个常量对象。

2017-02-23 11:35:14 1449 1

原创 策略模式详解

策略模式: 第一:属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。 第二:策略模式使得算法可以在不影响到客户端的情况下发生变化。算法行为和环境是相互独立开来的策略模式体现了两个基本的面向对象的设计原则,是面向接口的编程 1.封装变化的概念 2.编程中使用接口,而不是接口的实现策略模式的组成: 1.抽象策略角色,策略类,通常是

2017-02-23 10:04:06 687

原创 HashMap 的简单介绍

HashMap的几个知识点 1. HashMap 是以key–value对的形式存储的,key值是唯一的,一个key只能对应着一个value,但是value是可以重复的 2. HashMap 如果再次添加相同的key值,它会覆盖key值所对应的内容,这也是与HashSet不同的一点,Set通过add添加相同的对象,不会再添加到Set中去 3. HashMap 提供了get方法,通过key值取对

2017-02-22 11:09:03 612

原创 关于main函数的传参数介绍 public static void main(String[] args)

/* * //这里要对main函数讲解一下,参数String[] args是一个字符串数组,接收来自程序执行时传进来的参数如果是在控制台,可以通过编译执行将参数传进来,命令行如下:javac HashMapTest.java java HashMapTest a b c // 字符串以空格的方式隔开这样传进main函数的就是一个字符串数组, args[0] =a; args[1]=b

2017-02-22 09:09:25 10144 1

原创 java中的Iterator 和TreeSet

HashSet 是没有提供get方法的,但是我们在使用Set的时候要获取对象,因此在HashSet中提供了 Iterator 来实现遍历迭代器的工作原理: 主要有三个函数:可以认为iter是箭头所在地方, next(), 指向元素 hasNext(), 判断还有对象吗 remove(), 移除对象 Iterator iter = hashSet.iterator()

2017-02-22 09:04:26 1344

原创 HashSet 介绍, equals() 和hashcode()方法介绍

第一点,Set集合中是不允许有重复元素的, 第二点,Set集合中是无顺序的 第三点: * 为什么 add方法在添加String类型和普通的对象Person的时候结果不太一样,在它的帮助文档中是这样解释的 * //Adds the specified element to this set if it is not already present. More

2017-02-21 15:59:43 3017

原创 LinkedList 实现栈与队列,比较简单

import java.util.LinkedList;public class LinkedListStackQueue { public static void main(String[] args) { LinkedListStackQueue linStackQueue=new LinkedListStackQueue(); // 栈的测试

2017-02-21 11:11:34 421

原创 java transient 和 volatile 关键字的用法

transient和volatile两个关键字一个用于对象序列化,一个用于线程同步transient:一个对象只要实现了Serilizable接口,这个对象就可以被序列化,Java的这种序列化模式为开发者提供了很多便利,可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个的所有属性和方法都会自动序列化。但是有种情况是有些属性是不需要序列化的,所以就用到这个关键字transi

2017-02-20 21:21:49 810

原创 java 中LinkedList详解,附带一部分源码和ArrayList的比较

数据结构一般分为两大类: 线性数据结构如线性表、栈、队列、串、数组、和文件 n个元素的有限序列,除了第一个元素,其他元素只有唯一的一个前驱,除了最后一个元素,其他元素只有一个唯一的后继,所有数据在同一个线性表中必须是相同的数据类型。 非线性数据结构 如树和图下面这幅图表现的是我近期内要学习的一些集合类ArrayList 和LinkedList的区别: 1.ArrayList是实

2017-02-20 21:07:49 396

原创 java 实现几种常见的排序算法

包含了 冒泡,快速排序,选择排序,插入排序,希尔排序,堆排序, 归并排序,基数排序package Test;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class SortAny { public static void main(String[] args) {

2017-02-20 17:21:28 267

原创 java ArrayList 源代码分析

首先看一下ArrayList的实现:继承自AbstractList, 实现了List,RandomAccess, Cloneable,java.io.Serializable接口, 1. 可以看出它是支持泛型的,因此可以存储不同类型的对象, 2. 实现了RandomAccess, Cloneable,java.io.Serializable接口,但是其实他们都是空接口,里面没有任何方法声明,只

2017-02-20 16:41:34 280

原创 java 中的集合(特别重要)

集合在java.util包中,主要分为两大类: Collection 和 Map 都是接口 Collection{ Set({SortedSet}),List} Map { SortedMap} 这些都是接口 List 是带顺序的 偶然想起不知道JDK和IDE是哪些英文字母的拼写,区别是什么再科普一下 JDK 是Java开发工具包 (Java Development Kit ) 的缩写,它

2017-02-19 21:40:42 2963 1

原创 两个原生数据类型交换问题

java中是不可能将两个整数直接传进一个函数中进行数据交换的, 在C或者C++ 中也不行,一般都是通过传地址完成的// C或者C++中交换数据的方法 void swap2(int &a, int &b) //引用传递 { int temp; temp = a; a = b; b = temp;

2017-02-19 20:24:01 523

原创 自动装箱拆箱详解

包装类主要是为了解决,容器类存放基本类型的问题,而每次如果手动装箱拆箱,显得太繁琐,所以提供了自动拆装箱的语法糖。自动装箱拆箱问题:Java**自动**将原生数据类型转换成对应的对象,比如将int的变量转换成Integer对象,这个过程叫做装箱,反之将Integer对象转换成int类型值,这个过程叫做拆箱自动装箱和自动拆箱如何实现: Integer C=new Integer(30); //定义

2017-02-19 17:06:49 771

原创 java中 equals 方法详解 和 String 详解

第一个重要知识点 == 和equals 方法的区别,很重要的一点为, == 永远比较的是地址, 而equals方法在 String类型 和 八种原生数据类型的包装类型如Integer等,的里面是比较的内容。而对于普通的对象,equals方法也比较的是 地址。第二个重要知识点 new的原生数据类型,通过String a=“”aaa“”定义的 变量是放在栈中的,而 new出来的对象,和a=ne

2017-02-19 15:46:14 1257

原创 我目前常用的几种Java快捷键

格式对齐: ctrl +Shift +F自动补全 alt + /快速注释 Ctrl + /关于Eclipse 的一些技巧:改变编辑器字体大小和颜色 widow —-perferences—-general—- Appearance——colors and Fonts —–Text Font回复Eclipse到默认布局: window—–resetPerspective改变默认字体格式为utf

2017-02-19 11:54:19 1718

原创 java之中随机数生成的两种方法

import java.util.Random;public class RandomMethod { public static void main(String[] args) { // TODO Auto-generated method stub // 第一种方法,使用java.util包里面的Random方法 Random random

2017-02-19 11:36:00 651

原创 二分查找代码

二分查找的前提: 数组必须为有序数组public class ArraySearch { public static void main(String[] args) { // TODO Auto-generated method stub int[] a={1,2,3,4,5,6,7,8,9,10}; ArraySearch arraysearc

2017-02-19 10:25:06 757

原创 java单例模式详解

如何实现一个单例模式? 单例模式,顾名思义就是定义了一个类只能产生一个类的对象 // 思想: 让构造方法为私有的,那么外部就无法通过 new 实例化一个类的对象,只能通过内部来使用构造函数, // 类内部编写一个get方法来获得这个唯一的实例化对象, 为什么get 方法为静态的,因为外部无法实例化该类的对象,所以只能通过内部的get方法来获取, //类名.方法名来调用, 因此必

2017-02-19 10:05:29 315

空空如也

空空如也

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

TA关注的人

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