自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wangjxy杂乱小屋

散篇技术小博

  • 博客(28)
  • 问答 (1)
  • 收藏
  • 关注

原创 JAVA关于HashMap浅谈

HashMap是在底层运用了hashtable技术来对key-value的键值对数据进行存储,其中以key作为哈希索引,故而key是不允许"相同"的,但是可以把null作为key值。    HashMap有个内部类Entry,其key-value键值对就是保存在Entry内部中。    首先,咱们先上图来看看HashMap的概念结构图:    图1    如图1,这是一个长

2015-12-15 15:31:18 459

原创 JAVA关键字NULL小谈

null为java中的一个关键字,它是所有引用变量的默认值;关于null,有以下几点需要注意,特别指出:      1.null可以转换为任何类型。       通过强制类型转换,null可以转换为任何类型的对象,如,       String str = (String)null;       其效果和 String str = null; 其实是一致的,但是它能够通过编译且正常

2015-11-30 15:42:10 357

原创 Integer与Int小谈

Integer与Int是包装类与基本类型的关系,能够互相自动拆装箱;两者一起参与运算符运算的时候,往往都拆箱为基本数据类型运算。这些都是较为常见的知识了。       对于装箱过程,其实其中有点小花头需要注意:       对于如下代码: //-128-127 Integer i1 = 127; Integer j1 = 127; Sys

2015-11-29 23:16:35 363

原创 JAVA垃圾回收与GC浅谈

众所周知,java中的对象能够在"无用"的时候被GC回收,腾出空间,但是具体什么样的对象在什么样的情况下被怎样回收,其实过程还是有些小复杂,接下来就简要的谈谈这些过程:问题一:何为"无用"对象。1. 无任何引用的对象;根据该思想,诞生一种“引用计数法”来判断对象的存活性--   思路:给对象添加一个引用计数器,当引用计数器为0的时候,代表对象可回收; 缺点:无法解决循环引用,整个对

2015-11-28 22:22:17 355

原创 算法之排序算法浅谈

在8大排序算法之间的时间复杂度,辅助空间以及稳定性情况如下表1:    表1   一:快速排序。   快速排序的核心在鱼partition函数部分,如何选择pivot分割点,以及如何围绕分割点进行分割;   法一:如下代码/*** 快速排序法*/public class QuickSort { //运用分治思想,按照每次的中间值分开两部分后,每部分继续递归去分为

2015-10-06 22:21:19 319

原创 Java内存模型之运行时数据区域

Java虚拟机会开辟一块内存区域,,单独给Java程序使用,这块内存区域又可以分为以下多个部分,如下图1:     图1    以下表格列出了这些区域的一些特点与区别,如表1:表1    作用解释:    程序计算器:用来存贮线程执行当前运行java程序的指令的地址字节码,也就是returnAddress类型。一个线程一个程序计数器;

2015-10-01 19:59:00 1346

原创 JAVA String类与常量池,堆之间的错综复杂...

由JVM内存管理可知,在方法区中有一块独立的区域,被称之为运行时常量池,在虚拟机启动时,JVM会自动创建,有9种类型的常量池,8大基本类型与String类型。   常量池是存放数据字面量的,比如“abc”,1,5.0,'c',true等等(注:String类的具体值,都是存在常量池中,堆中存的是常量池中的引用;8大基本类型的包装类中,除了Float,Double类意外,都有实现常量池,但是,数

2015-09-12 00:01:01 746

原创 JAVA 类的生命周期

类的生命周期主要分为几个板块:装载,链接,初始化,对象生命周期,卸载。    一旦java文件经过编译后,变成了二进制的class,类的生命周期就在JVM中开始了:    1.装载:把.class文件装载到JVM中,创建一个该类的Class对象,来表示该类,封装类的属性;    2.链接:在把.class文件装进来后,需要通过链接来把他装成可运行状态,分为三个步骤;       a

2015-05-30 14:24:51 347

原创 JAVA 关于编码-unicode

1.unicode是用16位二进制来表示字符的一种编码方式。java中就是采用unicode进行编码,因此,在java中,每个字符都是16位二进制   表示,即2个字节(byte)。2.如何得到字符以及字符串的unicode?   1)对于字符类型(char)而言,可以与数字类型直接进行相互转化,而转化后的数字类型即为字符类型所对应的unicode;可以发      现,u

2015-05-28 17:07:32 1049

原创 JAVA 枚举

枚举:被定义为枚举的类,则里面可以定义有限的对象类型,每一种类型表示该类的一种对象。 1.定义枚举类用关键字enum来修饰类,然后在该类里面直接添加相应的对象名称即可,如:enum Fruit{ APPLE,ORANGE,BANANA;}用关键字enum来修饰一个类后,其实该类就默认继承了java.lang.Enum类,也就会默认调用该类的构造方法,因此枚举类本身无需重新定义构

2015-05-23 21:07:01 328

原创 JAVA 类集

JAVA 中的类集主要分为两大块,一块是由Collection作为父接口的单值接口;另一块是以Map作为父接口的映射接口。在Collection的子接口中,比较常用的有:List,Set,Queue,SortedSet接口;在Map中,比较常用的子接口为SortedMap。接下来介绍下这些接口的常用的具体实现类:List:其内容是允许重复的(不会自动去重);    a. A

2015-05-14 23:04:44 395

原创 JAVA 对象序列化

概念:对象序列化,就是将一个对象转化为二进制的数据流;方法:想要被序列化的对象,在定义该类时,必须实现Serializable接口,或者实现Externalizable接口;           对象序列化实质是把对象的属性进行序列化为二进制数据流,方法则不管;因为对象直接只有属性是有差异的;Serializable接口把对象所有属性进行序列化,Externalizable接口则是可以

2015-05-12 13:57:08 376

原创 JAVA IO操作

1.文件本身的操作用File类来操作;    例1:创建与删除文件:     例2.列出所给文件目录下的全部内容,包括子文件夹中的内容:  2.对于文件内容的IO操作,则方法居多;主要有字节流与字符流两大类,操作方法等价,可相互替换,因此只讲一种;    A.  RandomAccessFile类提供对文件内容的随机访问存取,以字节为单位去文件内定为指针,可以通过文档查

2015-05-02 15:10:02 278

原创 JAVA 观察者模式

实现观察者模式涉及到一个类和一个接口--Observable类和Observer接口;        被观察的类需要继承Observable类,在该类中的常用方法有:    public void addObserver(Observer o);增加一个观察者观察自己;    public void deleteObserver(Observer o);删除一个已有的观察者; 

2015-05-01 14:50:04 291

原创 JAVA 日期操作

1.生成日期-new Date();   通过Date类中的构造函数,生成当前机器上的时间,但是其显示是默认的,如图: 2.对日期做生成格式的转变;    可以用DateFormat类中的方法,对生成的日期进行格式化:     a.用getXXXInstance()来获取格式化的实例,XXX可以有Date,DateTime等替换,获取实例后调用format()函数来对Dat

2015-04-30 19:58:07 417

原创 JAVA 比较器使用

在JAVA中,任何类型的数组可以通过java.util.Arrays.sort()方法进行自动排序,但是前提是该类型的类必须实现了Comparable接口。(由于数字的包装类,如integer,以及String类等已经实现了Comparable接口,所以可以直接对数字类型以及字符串类型进行运用该方法排序)    1.方法实现。             注:Comparable接口需要实

2015-04-29 20:12:11 397

原创 JAVA泛型浅谈

1.泛型类用表示该类接受泛型,里面的T是具体类型(类),但是不接受基本类型,一定需要包装类。也可以进行多个泛型设置,如class Info。 2.泛型引用传递  泛型对象作为引用参数在函数传递的时候,泛型指定的类型不能向上或向下进行转换;在参数中只能指定泛型声明时一致的类型,或者运用通配符?或者T等字母。但是如果当fun()函数里面是多个参数的时候,每个参数泛型类型

2015-04-27 15:17:20 372

原创 JAVA 线程

JAVA中实现线程有两种方法,一是继承Thread类,二是实现Runnable接口。但是无论哪种方法,最终必须用Thread类中的start()方法启动线程(该start()方法是通过调用系统底层的start()方法实现);而如果只用Thread类的话,所启动的两个线程无法并发执行,只能顺序执行,而且start()方法只能调用一次;但是当在Thread()构造函数中传入实现了Runnable接口的

2015-04-17 19:06:18 299

原创 JAVA异常浅谈

1.JAVA异常层次结构图:其中,Error是程序不能处理的错误异常,是在程序运行过程中,由jvm产生并直接处理(中断程序);这类异常错误能够通过编译,但是在运行时报错;相对而言,Exception是程序能够处理的异常错误,可以由程序中进行捕获处理;RuntimeException:运行时产生的异常错误,同样编译可通过,只在运行时才能检查抛出异常;IOException:编译时

2015-04-17 13:57:36 367

原创 JAVA 对象间的比较

对象比较由三部分组成:1.如果引用地址相等,则必然相等;2.如果两个对象不属于同一个类的实例,则一定不相等;3.如果引用地址不一样,但是都属于同一个类的实例,则用比较两个对象的具体内容来判断.boolean equals(){}函数是Object类的一个函数,只是比较地址是否相等,所以具体类中我们要重写该函数!boolean equals(FatherClass a, FatherClas

2015-04-16 21:56:54 305

原创 JAVA 代理模式

interface NetWork{ public void browse();}class NetWorkImp implements NetWork{    public void browse(){     System.out.println("Do browse!") ; }};/**  用代理类代理所有以上具体的操作,无论是否涉及接口。  可以在

2015-04-16 21:24:56 328

原创 JAVA 工厂设计模式

interface Fruit{ public void eat();}class Apple implements Fruit{    public void eat(){     System.out.println("This is Apple!") ; }};class Orange implements Fruit{ public void eat()

2015-04-16 20:46:36 333

原创 JAVA内部类使用

/** 在外部调用用new OutClass().new InnerClass()来生成内部类对象. 内部类就是普通外部类属性。*/public class OutClass{ class InnerClass{  public void show(){      System.out.println("This is the method in inner class

2015-04-16 18:38:21 357

原创 JAVA单例模式

public class SingleInstance{     private static SingleInstance instance = new SingleInstance() ; //静态默认创建一个实例,并私有化,不准外部调用     //私有化构造函数,防止被外部自行创建     private SingleInstance(){     System.out.p

2015-04-16 09:42:54 247

原创 JAVA 内存区域

(1)栈内存:保存所有对象(引用类型,包括数组)名称(保存了引用堆内存空间的地址);(2)堆内存:保存每个对象具体属性内容;(3)全局数据区域:保存static 数据类型的属性;(4)全局代码区域:保存所有的方法与定义;

2015-04-15 20:49:30 492

原创 eclipse for java EE中jdbc配置与连接测试

本篇数据库以SQL Server 2008 为例:1.下载相应jdbc驱动,SQL Server 2008驱动文件为sqljdbc4.jar的一个包。2.打开eclipse for java EE, 选择windows-preferences打开如图对话框:选中Driver Definitions,在右边点击ADD打开对话框,选择相应的SQL Server 2008:并在J

2014-02-10 17:53:41 3431

原创 无集成开发工具下的JDK环境变量设置与HelloWorld.java测试

JDK环境变量设置:1.右击我的电脑-属性-....-环境变量,在系统变量栏点击新建,输入变量名:JAVA_HOME,变量值:(你安装jdk的根目录路径),点击确定。(...处不同操作系统略有差异)2.在系统变量栏找到CLASSPATH变量双击打开(没有该变量新建该变量),在变量值处最前面添加:.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\

2014-02-07 01:01:11 549

原创 Myeclipse下修改Web根目录

在一个Myeclipse项目中,若有多个目录作为Web目录来切换使用,当一个转换为另一个时候,可以按如下步骤切换:(如想把WebRoot改为WebContent作为根目录)1. 右击项目文件,选择properties选项-Myeclipse-Web, 在右边处改为相应目录。2. 项目的根目录下,用记事本分别打开.mymetadata和.classpath文件,然后分

2014-02-07 00:25:53 1290

空空如也

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

TA关注的人

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