
Java
文章平均质量分 71
伱糸淂忄
这个作者很懒,什么都没留下…
展开
-
HashMap 底层实现原理
1. Java中的集合框架:2. HashMap 工作原理(1) 数组的特点:存储区间是连续的,占用内存严重,空间复杂度很大,时间复杂度为O(1); 优点:随机读取效率很高,原因是数组是连续的(随机访问性强、查找速度快); 缺点:插入和删除数据效率低,因为插入数据时,该位置后面的数据在内存中要向后移动,且数组大小固定不易动态扩展;删除数据也同样涉及到数组中数据在内存中位置的移动问题;(2) 链表的特点:存储区间是离散的,占用内存宽松,空间复杂度小,时间复杂度为O(N); 优点:插原创 2020-06-23 13:23:05 · 258 阅读 · 0 评论 -
Java中的Map的用法、遍历、排序、常用API
一、Map的用法:1. 类型介绍:Java自带了各种 Map 类,这些 Map 类可以归为三种类型:(1) 通用 Map:用于在应用程序中管理映射,通常在 java.util 程序包中实现;分别是:HashMap、HashTable、Properties、LinkedHashMap、IdentityHashMap、TreeMap、WeakHashMap、ConcurrentHashMap;(2) 专用 Map:通常使用者不必亲自创建此类 Map,而是通过某些其他类对其进行访问: ...原创 2020-06-02 12:05:11 · 297 阅读 · 0 评论 -
Java反射机制相关使用(API)
一、反射:程序可以访问、检测、修改它本身状态或行为的一种能力;反射机制允许程序在运行时获取任意一个类自身的定义信息;例如,可以实现动态创建类的对象、变更属性的内容或执行特定的方法功能。 反射是一类应用,它们能够自描述和自控制;也就是说,这类应用通过采用某种机制来实现对自己行为的描述和监测,并能根据自身行为的状态和结果调正或修改应用所描述行为的状态和相关的语义。二、作用:在运行时判断任意一个对象属性的类型; 在运行时构造任意一个类的对象; 在运行时判断任意一个类所具有的属性和方法...原创 2020-06-01 14:30:38 · 380 阅读 · 0 评论 -
Java中的代理(静态代理和动态代理)
一、代理的概念: 定义:为其他对象提供一种代理,以控制对这个对象的访问。 关于Java中的代理,有一种常用的设计模式---代理模式;对于代理,根据创建代理类的时间点的不同,又可以分为:静态代理和动态代理。 代理模式,是一种常用的Java设计模式,其特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本...原创 2020-05-31 19:49:34 · 384 阅读 · 0 评论 -
Java 递归算法
1. 什么是递归算法:递归算法,就是直接或者间接地调用自身的算法。2. 运用递归算法的几个编程问题:(1) 有一列数据:1、1、2、3、5、8、13、21、34,求第30位数字是多少。public class DiGuiOne { public static void main(String[] args) { long res = method(inPut); Syste...原创 2019-12-03 16:13:28 · 200 阅读 · 0 评论 -
抽象类与接口的区别
接口(interface)和抽象类(abstract class)是支持抽象类定义的两种机制。两者具有很大的相似性,甚至有时候是可以互换的。但同时,两者也存在很大的区别。备注:这里前后两个抽象类的意义不一样,前者表示的是一个实体,后者表示的是一个概念。 具体而言,接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的;而抽象类是可以有私有方法或私有变量的,如...原创 2019-12-03 12:52:54 · 178 阅读 · 0 评论 -
Java面向对象编程
一、面向对象开发方法概述 一般来说,软件开发都会经历以下声明周期:软件分析:分析问题领域,了解用户的需求; 软件设计:确定软件的总体架构,把整个软件系统划分成大大小小的多个子系统,设计每个子系统的具体结构; 软件编码:用选定的编程语言来编写程序代码,实现在设计阶段勾画出的软件蓝图; 软件测试:测试软件是否能实现特定的功能,以及测试软件的运行性能; 软件部署:为用户安装软...原创 2019-11-28 14:12:05 · 581 阅读 · 0 评论 -
抽象类与接口的异同点
抽象类:含有抽象方法或者由abstract关键字修饰的类称之为抽象类。接口:是指一个或者多个方法的集合,接口中只有方法的声明而没有方法的具体实现。相同点:抽象类和接口都不能直接实例化;只有当抽象类被子类继承、接口被实现类所实现之后,才能进行实例化。不同点:① 方法的定义不同: 抽象类中的抽象方法只能有方法的声明,没有方法体;且抽象类中可以定...原创 2019-11-26 15:19:46 · 303 阅读 · 0 评论 -
HTTP、TCP、UDP的区别
IP:网络层协议;TCP和UDP:传输层协议;HTTP:应用层协议;Socket:TCP/IP网络的API;TCP/IP代表传输空值协议/网络协议,指的是一些列协议。TCP和UDP使用IP协议从一个网络传送数据包到另一个网络。 把IP想象成一种高速公路,它允许其他协议在上面行驶并找到其他电脑的出口。 TCP和UDP是高速公路上的“卡车”,它们...原创 2019-11-24 16:41:20 · 526 阅读 · 0 评论 -
Java中抽象类和接口的区别及使用
一、抽象类:有 abstract 关键字修饰的类,称之为抽象类。 1. 抽象类的特点: ① 有 abstract 关键字修饰; ② 含有抽象方法的类,必须声明为抽象类;但是抽象类不一定要含有抽象方法,可以全是非抽象方法; ③ 抽象类必须由子类去继承,进而实现其中所有的抽象方法;若子类没有实现抽象父类中定义的所有抽象方法,那么该子类也需声明为抽...原创 2018-12-11 19:49:58 · 247 阅读 · 0 评论 -
Java Web中的Filter、Interceptor、Listener
一、Filter、Interceptor、Listener简介1. Filter:即过滤器。它是处于客户端与服务器资源文件之间的一道过滤网,在访问资源文件之前,通过一系列的过滤器对请求进行修改、判断等,把不符合规则的请求在中途拦截或修改。也可以对响应进行过滤,拦截或修改响应。2. Interceptor:拦截器是动态拦截Action所调用的对象;它提供了一种可以使开发者在一个Action执...原创 2018-12-10 22:26:01 · 292 阅读 · 0 评论 -
Java中的equals()方法和“==”的区别
本文转载自:http://www.cnblogs.com/zhxhdean/archive/2011/03/25/1995431.html总之:== 用于判断对象的物理地址是否相同; equals用于判断对象的value是否相等;Java中的数据类型,可分为两类:1.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,d...转载 2018-12-20 12:22:20 · 193 阅读 · 0 评论 -
Java基础试题:输入年月日,判断这一天是这一年的第几天
这里使用了Java8对日期处理的新特性。列出了三种实现方式。public class TheDayInYear_One { public static void main(String[] args) throws ParseException { // TODO Auto-generated method stub Scanner scan = new Scanner(Syste...原创 2018-12-07 11:06:51 · 6982 阅读 · 0 评论 -
Filter过滤器的使用示例
过滤器 过滤器是处于客户端与服务器资源文件之间的一道过滤网,在访问资源文件之前,通过一系列的过滤器对请求进行修改、判断等,把不符合规则的请求在中途拦截或修改。也可以对响应进行过滤,拦截或修改响应。 如图,浏览器发出的请求先递交给第一个filter进行过滤,符合规则则放行,递交给filter链中的下一个过滤器进行过滤。过滤器在链中的顺序与它在web.xml中配置...原创 2018-11-07 21:54:46 · 353 阅读 · 0 评论 -
BigDecimal 使用方法详解
BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以 10 的负 scale 次幂。因此,BigDecimal 表示的数值是 (unscaledValue × 10-scale)。 可以处理任意长度的浮点数运算。 BigDecimal add(BigDecimal v原创 2017-10-30 20:33:13 · 424 阅读 · 0 评论 -
Map集合的四种遍历方式
import java.util.HashMap;import java.util.Iterator;import java.util.Map;public class TestMap { public static void main(String[] args) { Map map = new HashMap(); map.pu转载 2017-11-02 18:11:59 · 178 阅读 · 0 评论 -
Java语言中List、Set、Map三种集合之间的区别
List、Set是实现了Collection接口的子接口;而Map是另一个集合接口;(Collection接口和Map接口是平级的)1. 三者之间的区别如下:1) 元素重复性:① List允许有重复的元素。任何数量的重复元素都可以在不影响现有重复元素的值及其索引的情况下插入到List集合中;② Set集合不允许元素重复。Set以及所有实现了Set接口的类都不允许重复值的插入,...原创 2017-12-02 16:48:29 · 22346 阅读 · 2 评论 -
实现Java Web项目分页功能
接触Java技术以来,项目中实现分页功能一直以来是一大纠结点。近日终归算是下定决心研究一下其中的原理了喽~~~本次主要研究分页功能实现原理,所以没有使用任何框架技术,通过简单的Servlet、jsp连接MySQL数据库来实现。一、准备工作:1. 在MySQL数据库中创建数据表,并添加足够分页的数据。2. 使用MyEclipse创建JavaWeb项目。3. 创建实体类、工具类、DAO、Service...原创 2018-03-30 15:16:38 · 1680 阅读 · 0 评论 -
Java中ArrayList和LinkedList的区别
一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优势,因原创 2018-03-25 11:04:56 · 206 阅读 · 0 评论 -
HashMap解决hash冲突
背景:在Java编程语言中,最基本的数据结构就两种:一种是数组;一种是模拟指针(引用)。 所有的数据结构都可以用这两种基本结构进行构造,HashMap也一样。 当程序试图将多个key-value放入HashMap中时,HashMap采用一种所谓的“Hash算法”来决定每个元素的存储位置。1. 什么是hash冲突?如果存在相同的hashCode值,那么它们确定的索引位置就相同,这原创 2018-03-25 14:15:00 · 1581 阅读 · 0 评论 -
hashCode( )方法的作用
想要明白hashCode的作用,你必须要先知道Java中的集合。总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set。 你知道它们的区别吗?前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。 那么这里就有一个比较严重的问题了:要想保证元素不重复,可两个元素是否重复应该依据什么来判断呢? 这就是Object.equals方原创 2018-03-25 17:08:29 · 180 阅读 · 0 评论 -
hashCode()方法的作用【附】
1. hashCode() 方法和equals()方法的作用其实是一样的,在java中都是用来对比两个对象是否相等、一致;2. 既然作用相同,为什么要定义两个作用相同的方法呢?二者的区别是什么? 因为重写的equals()方法比较的较为全面、较为复杂,以至于处理效率就相对比较低; 而利用hashCode()方法进行比较,则只要生成一个hash值进行比较就可以了,处理...原创 2018-03-25 18:45:49 · 376 阅读 · 0 评论 -
Collections.sort()和Arrays.sort()排序算法选择
Collections.sort();和Arrays.sort();两个方法的排序算法实现:Arrays.sort()先来看看Arrays.sort();,一点进这个方法会看到是这样子的public static void sort(int[] a) { DualPivotQuicksort.sort(a, 0, a.length - 1, null, 0, 0);}123果然没这么简单...原创 2018-03-27 15:50:21 · 374 阅读 · 0 评论 -
Java 反射机制原理
反射的概念反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。这一概念的提 出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。其中 LEAD/LEAD++ 、OpenC++ 、MetaXa和OpenJava等就是基于反射机制的语言。最近,反射机制也被应用到了视窗系统、操...原创 2018-03-27 16:55:03 · 439 阅读 · 0 评论 -
Java中的泛型
1. Java中泛型的概念 Java泛型是Java SE1.5 的新特性,泛型的本质是参数化类型;也就是说,所操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口、方法的创建中,分别称之为:泛型类、泛型接口、泛型方法。 所谓参数化类型,是将类型由原来具体的类型参数化;类似于方法中的变量参数,此时类型也定义成参数形式(可称之为类型形参),在调用时传入具体的类型...原创 2018-03-27 17:39:07 · 201 阅读 · 0 评论 -
Java中的回调函数
从维基百科上面摘抄定义:(看完本篇文章再来理解这个定义) 在计算机程序设计中,回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序。 在Java里面,我们使用接口来实现回调。 这篇文章中的解说定义非常好:http://blog.youkuaiyun.com/sweetwxh/article/de...原创 2018-03-27 18:17:33 · 499 阅读 · 0 评论 -
常见Java技术基础知识点
这些资料有的是自己在网上看到的,有的是自己亲身经历后整理的。 1.JAVA的垮平台原理JVM也是一个软件,不同的平台有不同的版本。我们编写的Java源码,编译后会生成一种 .class 文件,称为字节码文件。Java虚拟机就是负责将字节码文件翻译成特定平台下的机器码然后运行。也就是说,只要在不同平台上安装对应的JVM,就可以运行字节码文件,运行我们编写的Java程序。 而这个过程中,我们...原创 2018-10-31 23:01:01 · 727 阅读 · 0 评论 -
Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
java.lang.OutOfMemoryError这个错误我相信大部分开发人员都有遇到过,产生该错误的原因大都出于以下原因:JVM内存过小、程序不严密,产生了过多的垃圾。导致OutOfMemoryError异常的常见原因有以下几种:内存中加载的数据量过于庞大,如一次从数据库取出过多数据;集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;代码中存在死循环或循环产生过多重复原创 2017-10-27 14:43:56 · 238 阅读 · 0 评论