java基础
文章平均质量分 84
漫长学习路
为了完善自己的代码,我会尽自己最大的努力
展开
-
Java String 对 null 对象的容错处理
前言最近在读《Thinking in Java》,看到这样一段话:Primitives that are fields in a class are automatically initialized to zero, as noted in the Everything Is an Object chapter. But the object references are initi转载 2016-06-02 10:28:17 · 1722 阅读 · 0 评论 -
学习笔记一
清明时节雨纷纷,每逢佳节思故人。清明节小长假来了,身为程序员的我今年也有二十好几了,回首这几年,有过泪,有过笑,有过幸福,也有过痛苦,很庆幸时光没有将我打倒,我任然是当初的那个我,保持着最初对java的热爱,对生活的激情,尽管我大部分时间不是在公司都在家里,可是有些东西真的是骨子里的。人一定要有梦想,万一实现了啦。接触的人多了,我倒是更喜欢java这个东西。他就像一件艺术品一样任由你去创造,设计,原创 2015-04-06 13:43:34 · 864 阅读 · 0 评论 -
java io流之拷贝文件
今天写了一个小程序,对比了一下拷贝文件的三种方式。然后再比较一下所用的时间.首先是第一种方式,也是最简单的一种,那就是用File流;//先判断一下有没有此文件,如果没有则返回提示信息//先判断一下有没有此文件,如果没有则返回提示信息if(!src.exists()){System.out.println("很抱歉没有此目录");return;}//要拷贝的源文件原创 2015-03-31 10:40:15 · 992 阅读 · 0 评论 -
历史上最全的正则表达式
正则表达式有需要的来看看正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。一、校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9][0-9]*)$ 6 非零开头的最多带两位小转载 2015-03-18 14:03:32 · 962 阅读 · 1 评论 -
浅谈java内存
这个星期主要看了一些关于java内存的书籍,现在自己来发表一下见解,理清一下思路。java内存主要分为两大类一个是栈内存,栈内存的特点是先进先出,所以在栈内存里面写代码的时候最好少使用递归,不然的话就有可能出现栈内存错误。栈内存里面主要存放的是基本八大数据类型。和数组对象的引用,也称为句柄。(我们在c里面也称为指针)。栈内存中的数据是可以共享的,下面我们举一段代码来说明一下。int s=1原创 2015-02-28 22:45:46 · 769 阅读 · 0 评论 -
java对象流与序列化
对象序列化Java语言有一种非常通用的对象序列化机制,它可以将任何对象写出到流中,并在之后将其读回。序列化:把Java对象转换为字节序列的过程。反序列化:把字节序列恢复为Java对象的过程。具体实例:我们先创建一个学生对象:/*/ * 学生对象 */public class Student implements Serializable{ private Stri原创 2016-06-12 19:40:56 · 1693 阅读 · 0 评论 -
HashMap源码深入解析
HashMap是Java Colletion Framework的重要成员,HashMap是Map接口的常用实现类,在我们平常开发时会经常使用到Map,在我们面试的时候也会问到map的存储原理,今天特地来总结一下;创建HashMapHashMap map = new HashMap(); 使用HashMap那么首先你得去创建一个HashMap,在创建的时候会发生什么事情啦?让我们跟着源码去原创 2016-07-25 20:13:32 · 2078 阅读 · 0 评论 -
Java对List集合的排序
由于其功能性和灵活性,ArrayList是 Java 集合框架中使用最为普遍的集合类之一。ArrayList 是一种 List 实现,它的内部用一个动态数组来存储元素,因此 ArrayList 能够在添加和移除元素的时候进行动态的扩展和缩减。使用Collections工具类进行排序:使用Collections排序非常简单,我们只需要把实现了Comparable接口的类传入里面调用一下C原创 2016-01-24 17:07:47 · 22984 阅读 · 0 评论 -
Java优化集合代码的一些方法
我们平常在开发中都会用到很多的集合类,但是在使用的时候会有很多自己都不怎么注意的小习惯会影响一些效率,这次就介绍一下优化集合代码的一些小方法;分离循环中被重复调用的代码假设我们要循环一个数组,最简单的方法如下:for (String value : strings) { // Do something useful here}当每次代码运行到这个循环时,如果 strings 变量是一个原创 2016-08-16 14:26:54 · 1251 阅读 · 0 评论 -
java强引用,软引用,弱引用,虚引用
用了Java怎么长时间一直不知道原来Java还有四种引用类型,这个引用类型和我们平常说的可不一样。这里的引用类型不是指数据类型的一种,而是指Java中的引用所分的四种类型。强引用: Java中的引用,有点像C++的指针。通过引用,可以对堆中的对象进行操作。在某函数中,当创建了一个对象,该对象被分配在堆中,通过这个对象的引用才能对这个对象进行操作。StringBuffer str=new Strin原创 2016-08-21 17:22:32 · 4650 阅读 · 3 评论 -
Hotsopt对象探秘
创建对象的方式简单来讲分为两种,一种是new方式创建出对象。一种是通过指针的方式来创建对象。详细点来说new里面又有克隆和序列化和普通的new原创 2017-12-10 15:12:37 · 980 阅读 · 0 评论 -
Servlet生命周期与工作原理
Servlet生命周期分为三个阶段: 1,初始化阶段 调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法Servlet初始化阶段: 在下列时刻Servlet容器装载Servlet: 1,Servlet容器启动时自动装载某些Servlet,实现它只需要在web.XML文件中的之间添加如下代码:1 2,在Serv转载 2017-11-25 11:27:22 · 360 阅读 · 0 评论 -
数据类型与运算符
我们都知道Java是强类型语言,意思是每个变量和表达式在编译期间就确定了的语言。Java语言主要分为两种一种是基本数据类型,一种是引用类型。每种类型必须先声明后使用,类型限制了他所赋予的值的不同,程序在编译时会进行语法检查,这样会使我们的程序更加严谨,安全。数值型:1)整型:byte 1个字节;short 2个字节;int 4个字节;long 8个字节。 2)浮点型:原创 2015-05-19 09:36:38 · 1061 阅读 · 0 评论 -
Java集合框架
Java集合是Java非常重要的一个概念,也是我们经常用到的。在没有Java集合框架的时候,我们一般都使用数组,但数组的长度是不可变的,一旦在初始化数组的时候声明了长度,那么就有了固定的大小,在面对实际场景时,我们往往需要对数组进行扩展;而且数组无法表示一种映射关系,例如个人信息:姓名-张三。这个时候就需要引入我们的集合框架了。很难给一个集合框架下一个定义,不过我们可以这样理解,集合就是把具有原创 2015-05-23 09:01:21 · 1097 阅读 · 0 评论 -
哪种Map遍历方法更优?!—Map遍历方法的正确选择
我们都知道遍历Map一般有3种方法,values(),keySet()和entrySet(),常见的是keySet用的多,简单容易理解,entrySet()是返回Map中的静态内部类Entry类类型的Set实例,当然了你别说forEach,forEach只是一种代替for(int i=0;;)和while()遍历的一种方式,底层也是用迭代器实现的,只不过把部分东西隐藏了,建议大家平常开发中能用fo转载 2017-11-26 15:25:22 · 618 阅读 · 0 评论 -
学习笔记之过滤器
前几天重新学习了一遍过滤器。现在来温故一下过滤器的作用,和生命周期,执行顺序,过滤器的作用域。过滤器的作用:.在我们的日常生活中,提起过滤器,我相信大家想到的肯定是一个类似漏斗之类的东西。在自来水厂,我们会去过滤一些污水和杂质,然后留下一些干净卫生,可供使用的水。有时候我们身上戴的口罩,也可以看成是一个过滤器,他会过滤一些空气中的灰尘和杂质。因为我们可以得到一个总结就是过滤器就是按照我们的需求原创 2015-04-20 13:52:42 · 1256 阅读 · 2 评论 -
学习笔记二(jsp九大高手和四大门派)
话说武林有四大门派,他们分别是少林、武当、峨眉、南拳。四大门派各有特色而又相辅相成,而在我们的jsp里面也有四大门派,我们一般称之为四大作用域,他们分别是application,session,request,page。这四大作用域也是相辅相成的,互相作用才能形成我们的jsp。好了先从功夫最高的开始讲起。功夫最高的自然就是application,它就像少林一样,俗话说得好,天下功夫出少林。而我们的原创 2015-04-13 14:37:08 · 1235 阅读 · 0 评论 -
java工具类之导出Excel
在我们的项目中经常会用到导出excel,这里就列举一下大家最常用到的导出EXCEL技术,在说一下自己设计的工具类。对POI不感兴趣的人,可以直接跳到最下面的工具类;什么是Apache POI?Apache POI是一种流行的API,它允许程序员使用Java程序创建,修改和显示MS Office文件。这由Apache软件基金会开发使用Java分布式设计或修改Microsoft Offic原创 2016-02-28 13:58:23 · 4667 阅读 · 0 评论 -
Java工具类之配置文件读取
在项目中,经常会用到很多的工具类,比如读取配置文件,上传下载,导入导出,json解析,排序等一些工具类。以前用到了很多,但是没有记录,等到下次工作的时候,要么就是在网上找,要么就是问同事要。现在准备总结一下这些工具类,以后好用到。Java读取配置文件一使用properties类读取: public static Properties getProperty(String URL){原创 2016-02-20 15:18:11 · 3678 阅读 · 0 评论 -
Java 日期的各种操作
一、Java中的日期概述日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式都是非常复杂的问题。在Java中,操作日期主要涉及到一下几个类:1、java.util.Date 类 Date 表示特定的瞬间,精确到毫秒。从 JDK 1.1 开始,应该使用 Calen原创 2015-12-27 13:53:32 · 976 阅读 · 0 评论 -
深度分析Java的枚举类型—-枚举的线程安全性及序列化问题
写在前面:Java SE5提供了一种新的类型-Java的枚举类型,关键字enum可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用,这是一种非常有用的功能。本文将深入分析枚举的源码,看一看枚举是怎么实现的,他是如何保证线程安全的,以及为什么用枚举实现的单例是最好的方式。枚举是如何保证线程安全的要想看源码,首先得有一个类吧,那么枚举类型到底是什么转载 2016-01-07 14:54:47 · 2614 阅读 · 0 评论 -
Java进阶之路 异常
在理想情况下,我们写的程序不会有任何的异常,用户输入的数据也永远正确,选择打开的文件永远存在,我们的程序也没有任何Bug,但是现在情况下,这种情况不现实,我们的项目和代码经常会出现各种各样的异常,我们除了在写代码的时候注意规范之外,还需要理解Java的异常机制;用户在遇到异常的时候总是会感觉不爽,久而久之就不想使用我们的软件了,所以遇到异常我们要做到以下几点;1.向用户返回,他可以接受的错翻译 2015-09-15 17:38:12 · 992 阅读 · 0 评论 -
Java的11个优点
在我们平常开发中我想使用到的最多语言就是java了,有幸购得Java核心技术卷一书,其实不想买的,因为自己感觉基础还不错,有读过疯狂Java讲义,java编程思想这些基础的,也读过java网络编程,spring核心技术卷等进阶的书。说来也是和这本书有缘,一个学妹转测试了,便宜转卖,看她那么辛苦,我实在不忍心,就买下了这本书。准备挑灯苦读,把晚上的时间留给这本书。翻开书本的第一卷,很好的向我阐述了J翻译 2015-07-27 22:34:11 · 8246 阅读 · 0 评论 -
关于Java的常见误解
这里总结了一下关于Java的常见误解,希望能够颠覆一下大家对Java的认识;以及改变自己对Java的误解;1:Java是HTML的扩展。Java是一种程序设计语言;HTML是一种描述网页结构的方式。除了用于在网页上放置Javaapplet的HTML扩展之外,两者没有任何共同之处。既然说到了HTML就不得不提一下JSP了,JSP全名为Java Server Pages,中文名叫java服务器翻译 2015-07-29 22:39:18 · 1056 阅读 · 0 评论 -
探索Java反射机制
Java反射机制,可以说我们平常开发中用的很多,尽管作为开发人员,我们并没有什么感觉,那是因为框架的设计者,已经为我们封装好了,我们只需要用去调用一下就可以了。以前也用到过反射,包括自己也写过,也学到过,但是我感觉都比较浅,今天有时间,我觉得有必要去慢慢的深入了解一下。反射机制是Java语言非常重要的一个特性,他使得我们的Java语言具有动态性。程序在运行时能够动态的更改程序结构,或者变量类型原创 2015-08-30 22:36:02 · 1174 阅读 · 0 评论 -
java IO流
java 输入输出流是一个比较特别的部分,因为我们无时无刻不在用到输入输出,但是我们却看不到明显的运行效果。接下来就了解一下输入和输出的概念。输入:使用输入机制来接收外部输入过来的数据,比如键盘上的打印的数据,磁盘,文件上输入过来的数据;输出:顾名思义,就是我们把我们运行程序中的数据给输出到页面,或者输出到移动设备上。如果要把一个移动设备上的东西,输出到用户界面,就得先使用输入后使用输出。原创 2015-05-26 08:29:00 · 1251 阅读 · 0 评论 -
关于Java性能的9个谬论
Java的性能有某种黑魔法之称。部分原因在于Java平台非常复杂,很多情况下问题难以定位。然而在历史上还有一种趋势,人们靠智慧和经验来研究Java性能,而不是靠应用统计和实证推理。在这篇文章中,我希望拆穿一些最荒谬的技术神话。1.Java很慢关于Java的性能有很多谬论,这一条是最过时的,可能也是最为明显的。确实,在上世纪90年代和本世纪初处,Java有时是很慢。然而从转载 2015-05-21 14:23:29 · 1323 阅读 · 0 评论 -
Java垃圾回收
网上看了很多关于垃圾回收的资料,总觉得说的很隐晦,不是同俗易懂,现在自己也来探讨下Java的垃圾回收机制;网上说的都太复杂了,我决定把Gc垃圾回收尽量说的简单一点;首先是要明白垃圾回收的意义,说简单一点,我们应该都玩过电脑吧,大家都知道,电脑的可用内存是越大运行速度就越快,玩起游戏来也会很爽,但是我们的电脑内存不是无限的,所以我们的时常清理一下垃圾,或者卸载一些我们不想用的软件,从而来达到翻译 2015-05-21 10:46:44 · 1019 阅读 · 0 评论 -
Java变量,修辞符,关键字
Java的变量主要分为两类,一类是成员变量,一类是局部变量,在我们的Java里面没有全局变量这个说法;原创 2015-05-19 22:03:40 · 1442 阅读 · 0 评论 -
java核心JVM
我认为再学习JAVA语言之前最重要的是先了解一下JVM,和java实现跨平台的原理,只有懂得的其原理,才能更好的去学习JAVA。我们都知道Java语言是一种面向对象的语言,同时他也是一种半解释半编译性语言。这都是java在编程语言中所占有的角色。为什么称java为半编译半解释性语言啦,这就和Java的虚拟计算机jvm有关,他负责把我们的Java语言编译成一种.class的文件,这种文件在jvm原创 2015-05-18 13:26:20 · 956 阅读 · 0 评论 -
万物皆对象
这里引用Java编程思想的一句话叫所有语言的最终目的都是为了提供一种抽象方法。为什么会怎么说啦,因为我们的Java语言就是抽象了JVM这个虚拟机,从而在一个虚拟空间里面可以解决我们现实生活中的问题。在我们的的生活中每个人都是独一无二的,每个人的生活价值观也都会有所不同,所理解的对象也会有所不同。按照生物书上所说对象,分为两种,一种是能动的自然,一种是非动的自然。按照历史来归类,我们可以理解为,原创 2015-05-18 14:33:54 · 1816 阅读 · 0 评论 -
什么情况下Java对象才是已经死亡?
已死的对象就是不可能被任何途径使用的对象,有以下几种方法判断一个对象是否已经死了;引用计数给对象添加一个引用计数器,每当有一个地方引用他,计算器就加1;当引用失效时,计数器减1;任何时刻计数器为0的对象就是死的对象。 1. 这种方式被很多技术所采用,如FlashPlayer(AS3)、Python等,但是Java没有采用这种算法,原因是它很难解决对象之间相互循环引用的问题,例如 ObjectA.p原创 2017-12-17 17:04:31 · 681 阅读 · 0 评论