java基础
andy2cloud
这个作者很懒,什么都没留下…
展开
-
java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一
如果格式太乱,就看原地址:http://blog.csdn.net/s10461/article/details/53941091对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下。本文参考java 泛型详解、Java中的泛型方法、 java泛型详解1. 概述泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什...转载 2017-09-30 23:26:12 · 263 阅读 · 0 评论 -
Java接口成员变量和方法默认修饰符
Java接口成员变量和方法默认修饰符 Java的interface中,成员变量的默认修饰符为:public static final所以我们在interface中定义成员变量的时候,可以1:public static final String name = "张三";2:String name = "张三";以上两种都可以,老司机一般都是第二种。转载 2017-09-30 22:46:03 · 11983 阅读 · 1 评论 -
阿里巴巴Java开发手册(正式版)
---------引自网络目录一、 编程规约..........................................................................................................................................................................转载 2017-09-20 15:13:13 · 2047 阅读 · 0 评论 -
HashMap实现原理及源码分析
哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行讲解,然后会对JDK7的HashMap源码进行分析。目录 一、什么是哈希表转载 2017-09-10 21:22:37 · 278 阅读 · 0 评论 -
Java四类八种数据类型
第一类:逻辑型boolean第二类:文本型char第三类:整数型(byte、short、int、long)char类型占2个字节short从-32768到32767int从-2147483648,到2147483647共10位long从-9223372036854775808到9223372036854775807共19位第四类:浮点型(float、do转载 2017-09-10 00:01:36 · 291 阅读 · 0 评论 -
Java枚举的七种常见用法
JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl…. 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。转载 2017-08-20 18:09:04 · 225 阅读 · 0 评论 -
Java中的枚举类型enum的使用
关于枚举大多数地方写的枚举都是给一个枚举然后例子就开始switch,可是我想说,我代码里头来源的数据不太可能就是枚举,通常是字符串或数字,比如一个SQL我解析后首先判定SQL类型,通过截取SQL的token,截取出来可能是SELECT、DELETE、UPDATE、INSERT、ALTER等等,但是都是字符串,此时我想用枚举就不行了,我要将字符串转换成枚举怎么转呢,类似的情况还有从数据库取出数据转载 2017-08-20 18:05:24 · 644 阅读 · 0 评论 -
深入理解java异常处理机制
深入理解java异常处理机制1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时间原创 2015-01-06 11:18:17 · 949 阅读 · 2 评论 -
Java中Object类的equals()和hashCode()方法深入解析
1.equals()在初学Java的时候,很多人会说在比较对象的时候,==是比较地址,equals()是比较对象的内容,谁说的?看看equals()方法在Object类中的定义:public boolean equals(Object obj){ return (this == obj);}这是比较内容么?明显是比较指针(地址)么...转载 2017-07-20 01:17:42 · 326 阅读 · 0 评论 -
关于string的内存机制
5. 关于String str = "abc"的内部工作。Java内部将此语句转化为以下几个步骤:(1)先定义一个名为str的对String类的对象引用变量:String str;(2)在栈中查找有没有存放值为"abc"的地址,如果没有,则开辟一个存放字面值为"abc"的地址,接着创建一个新的String类的对象o,并将o 的字符串值指向这个地址,而且在栈中这个地址旁边记下这个引用的对转载 2017-07-22 22:23:16 · 340 阅读 · 0 评论 -
java中final、finally、finalize的区别
1.final:如果一个类被final修饰,意味着该类不能派生出新的子类,不能作为父类被继承。因此一个类不能被声明为abstract,又被声明为final。将变量或方法声明为final。可以保证他们在使用的时候不被改变。其初始化可以在两个地方:一是其定义的地方,也就是在final变量在定义的时候就对其赋值;二是在构造函数中。这两个地方只能选其中的一个,要么在定义的时候给值,要么在构造函转载 2017-07-17 23:02:24 · 220 阅读 · 0 评论 -
java中overload和override区别
1、综述 overload它是指我们可以定义一些名称相同的方法,通过定义不同的输入参数来区分这些方法,调用时VM就会根据不同的参数样式,来选择合适的方法执行,是一个类中多态性的一种表现。Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,是父类与子转载 2017-07-17 22:50:34 · 488 阅读 · 0 评论 -
Java提高篇——equals()与hashCode()方法详解
阅读目录equals()方法详解hashcode() 方法详解Hashset、Hashmap、Hashtable与hashcode()和equals()的密切关系java.lang.Object类中有两个非常重要的方法:12public boolean equals(Object obj)public in转载 2017-07-16 01:04:49 · 314 阅读 · 0 评论 -
String使用equals和==比较的区别
"=="操作符的作用1、用于基本数据类型的比较2、判断引用是否指向堆内存的同一块地址。equals所在位置:在Object类当中,而Object是所有类的父类,包含在jdk里面,但并不适合绝大多数场景,通常需要重写public boolean equals(Object obj) { return (this == obj); }转载 2017-07-15 18:47:15 · 14804 阅读 · 3 评论 -
java的守护线程setDaemon
Thread.setDaemon的用法,经过学习以后了解:1. setDaemon需要在start方法调用之前使用2. 线程划分为用户线程和后台(daemon)进程,setDaemon将线程设置为后台进程3. 如果jvm中都是后台进程,当前jvm将exit。(随之而来的,所有的一切烟消云散,包括后台线程啦)4. 主线程结束后, 1) 用户线程将转载 2017-07-13 11:44:26 · 664 阅读 · 0 评论 -
正确理解ThreadLocal
首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。 另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,并不是通过ThreadLocal.set()来实现的,而是通过每个线程中的new 对象 的操作转载 2014-12-29 15:59:14 · 433 阅读 · 0 评论 -
Class.getResource和ClassLoader.getResource的路径问题
Java中取资源时,经常用到Class.getResource和ClassLoader.getResource,这里来看看他们在取资源文件时候的路径问题。Class.getResource(String path)path不以’/'开头时,默认是从此类所在的包下取资源;path 以’/'开头时,则是从ClassPath根下获取;什么意思呢?看下面这段代码的输出结果就转载 2017-10-27 14:49:47 · 216 阅读 · 0 评论 -
深入理解Java中的final关键字
Java中的final关键字非常重要,它可以应用于类、方法以及变量。这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使用final关键字的实例。final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的。final关键字的含义?final在Java中是一个保留的关键字,可转载 2017-12-02 14:36:18 · 151 阅读 · 0 评论 -
Java switch 详解
switch 语句由一个控制表达式和多个case标签组成。switch 控制表达式支持的类型有byte、short、char、int、enum(Java 5)、String(Java 7)。switch-case语句完全可以与if-else语句互转,但通常来说,switch-case语句执行效率要高。default在当前switch找不到匹配的case时执行。default并不是必须的...转载 2018-08-11 09:49:16 · 158 阅读 · 0 评论 -
Java中类的构造方法
constructor;构造函数。1在创建对象的时候,对象成员可以由构造函数方法进行初始化。new对象时,都是用构造方法进行实例化的;例如;Test test = new Test("a"); //Test("a");其中这个就是构造函数,“a”为构造方法的形参;123构造方法的方法名必须与类名一样。构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。构造方法不能作用是...转载 2018-06-29 19:57:59 · 420 阅读 · 0 评论 -
Java中InputStream和String之间的转换方法
在Java中InputStream和String之间的转化十分普遍,本文主要是总结一下转换的各种方法,包括JDK原生提供的,还有一些外部依赖提供的。1、InputStream转化为String1.1 JDK原生提供方法一:byte[] bytes = new byte[0];bytes = new byte[inputStream.available()];inputStream.read(...转载 2018-05-09 11:19:53 · 2022 阅读 · 0 评论 -
String lastIndexOf()双引号和单引号的区别?
双引号和单引号的区别?int index = fileName.lastIndexOf('.')和int index = fileName.lastIndexOf(".")效果一样,为什么?2016-07-08源自:Java入门第三季 2-3390 浏览3 回答最佳回答2016-07-08lastIndexOf是查找字符串,这个时候单引号里的字符会自动转化为字符串,你的引用的点(“.”),按字符来...转载 2018-04-18 10:22:57 · 2152 阅读 · 0 评论 -
JAVA字符串格式化-String.format()的使用
常规类型的格式化String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。format(Locale转载 2018-04-10 17:09:56 · 476 阅读 · 0 评论 -
BigDecimal的3个toString方法
本文介绍BigDecimal的3个toString方法的区别。BigDecimal类有3个toString方法,分别是toEngineeringString、toPlainString和toString,从BigDecimal的注释中可以看到这3个方法的区别:toEngineeringString:有必要时使用工程计数法。工程记数法是一种工程计算中经常使用的记录数字的方法,与科学技术法类似,但要求...转载 2018-03-23 10:02:34 · 5756 阅读 · 0 评论 -
JAVA不可变类(immutable)机制与String的不可变性
一、不可变类简介不可变类:所谓的不可变类是指这个类的实例一旦创建完成后,就不能改变其成员变量值。如JDK内部自带的很多不可变类:Interger、Long和String等。可变类:相对于不可变类,可变类创建实例后可以改变其成员变量值,开发中创建的大部分类都属于可变类。二、不可变类的优点说完可变类和不可变类的区别,我们需要进一步了解为什么要有不可变类?这样的特性对JAVA转载 2018-01-27 14:41:30 · 230 阅读 · 0 评论 -
Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面详细介绍每个位运算符。 1.与运算符与运算符用符号“&”表示,其使用规律如下:两个操作数中位都为1,结果才为1,否则结果为0,例如下面的程序段。public class转载 2018-02-02 18:53:06 · 232 阅读 · 0 评论 -
Java数组动态增加容量
Java数组初始化需要指定数组容量,但是在许多情况下需要动态扩充容量。有两种方法可以实现:1.采用ArrayList类数组,它可以在需要时自动扩容;2.采用System.arraycopy方法实现,其声明为:araycopy(Object src,int srcPos,Object dest,int destPos, int length) 写个代码就可明白了,示例如下:转载 2018-01-18 12:01:45 · 5041 阅读 · 0 评论 -
java提高篇(八)----详解内部类
可以将一个类的定义放在另一个类的定义内部,这就是内部类。 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二)。第一次见面 内部类我们从外面看是非常容易理解的,无非就是在一个类的内部在定义一个类。public class OuterClass { private Strin转载 2018-01-09 10:16:36 · 226 阅读 · 0 评论 -
abstract class和interface的区别
在Java语言中,abstract class和interface是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很大的转载 2017-12-19 13:52:26 · 152 阅读 · 0 评论 -
关于 Java 数组的 12 个最佳方法
下面是stackoverflow中关于数组方法的相关问题中,获得最多票数的12个数组操作方法。 1. 声明一个数组 Java代码 String[] aArray = new String[5]; String[] bArray = {"a","b","c", "d", "e"}; String[] cArray = new String[]{"转载 2017-12-03 21:02:28 · 184 阅读 · 0 评论 -
Java泛型详解,通俗易懂只需5分钟
我们知道,使用变量之前要定义,定义一个变量时必须要指明它的数据类型,什么样的数据类型赋给什么样的值。假如我们现在要定义一个类来表示坐标,要求坐标的数据类型可以是整数、小数和字符串,例如:x = 10、y = 10x = 12.88、y = 129.65x = "东京180度"、y = "北纬210度"针对不同的数据类型,除了借助方法重载,还可以借助自动装箱和向上转型。我们知转载 2017-07-01 13:25:40 · 598 阅读 · 0 评论 -
Java 异常处理的误区和经验总结
本文着重介绍了 Java 异常选择和使用中的一些误区,希望各位读者能够熟练掌握异常处理的一些注意点和原则,注意总结和归纳。只有处理好了异常,才能提升开发人员的基本素养,提高系统的健壮性,提升用户体验,提高产品的价值。误区一、异常的选择图 1. 异常分类图 1 描述了异常的结构,其实我们都知道异常分检测异常和非检测异常,但是在实际中又混淆了这两种异常的应用。由于非转载 2017-07-10 18:32:57 · 372 阅读 · 0 评论 -
Java异常分类
一、基本概念看Java的异常结构图 Throwable是所有异常的根,java.lang.ThrowableError是错误,java.lang.ErrorException是异常,java.lang.Exception 二、Exception一般分为Checked异常和Runtime异常,所有RuntimeExce转载 2017-07-10 18:09:39 · 201 阅读 · 0 评论 -
用户线程和守护线程
守护线程守护线程在没有用户线程可服务时自动离开,在Java中比较特殊的线程是被称为守护(Daemon)线程的低级别线程。这个线程具有最低的优先级,用于为系统中的其它对象和线程提供服务。将一个用户线程设置为守护线程的方式是在线程对象创建之前调用线程对象的setDaemon方法。典型的守护线程例子是JVM中的系统资源自动回收线程,我们所熟悉的Java垃圾回收线程就是一个典型的守护线程,当我们的程序原创 2015-12-11 16:18:33 · 2198 阅读 · 0 评论 -
JAVA的Random类(转)
Random类 (java.util) Random类中实现的随机算法是伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。相同种子数的Random对象,相同次数生成的随机数字是完全相同的。也就是说,两个种子数相同的Random对象,第一次生成的随机数字完全相同,第二次生成的随机转载 2015-12-10 15:32:27 · 234 阅读 · 0 评论 -
StringBuilder与StringBuffer的区别
相信大家看到过很多比较String和StringBuffer区别的文章,也明白这两者的区别,然而自从Java 5.0发布以后,我们的比较列表上将多出一个对象了,这就是StringBuilder类。String类是不可变类,任何对String的改变都会引发新的String对象的生成;而StringBuffer则是可变类,任何对它所指代的字符串的改变都不会产生新的对象,可变和不可变类这一对对象已经齐全转载 2015-12-10 17:08:11 · 196 阅读 · 0 评论 -
Java transient关键字使用小记
哎,虽然自己最熟的是Java,但很多Java基础知识都不知道,比如transient关键字以前都没用到过,所以不知道它的作用是什么,今天做笔试题时发现有一题是关于这个的,于是花个时间整理下transient关键字的使用,涨下姿势~~~好了,废话不多说,下面开始:1. transient的作用及使用方法 我们都知道一个对象只要实现了Serilizable接口,这个对象就可以转载 2015-12-10 14:05:43 · 245 阅读 · 0 评论 -
常用经典java代码集锦
1.需要在for循环中进行判断,如拼接http参数StringBuilder params = new StringBuilder();int index = 0;for (Object param : request.getParameterMap().keySet()) {params.append((index++ == 0 ? "" : "&") + param + "原创 2015-10-28 17:55:03 · 1420 阅读 · 0 评论 -
Java中的数字基本运算和精度问题
一. 精度 举例:double result = 1.0 - 0.9;这个结果不用说了吧,都知道了,0.09999999999999998float和double类型主要是为了科学计算和工程计算而设计的。他们执行二进制浮点运算,这是为了在广泛的数字范围上提供较为精确的快速近似计算而精心设计的。然而,它们并没有提供完全精确的结果,所以我们不应该用于精确计算的场合。fl转载 2015-07-23 20:51:52 · 648 阅读 · 0 评论 -
java环境变量深入剖析
先上一个环境变量的标准配置方式,后面详解每项的作用进行java开发,首先要安装jdk,安装了jdk后还要进行环境变量配置:1、下载jdk(http://java.sun.com/javase/downloads/index.jsp),我下载的版本是:jdk-6u14-windows-i586.exe2、安装jdk-6u14-windows-i586.exe3、配置环境变原创 2015-07-18 23:34:31 · 373 阅读 · 0 评论