Java
文章平均质量分 59
「已注销」
这个作者很懒,什么都没留下…
展开
-
Java位运算符
Java位运算符今天在学习 HashMap 的时候,发现这么一段代码:static final int tableSizeFor(int cap) { int n = cap - 1; n |= n >>> 1; n |= n >>> 2; n |= n >>> 4; n |= n >&...原创 2018-06-07 18:57:31 · 237 阅读 · 0 评论 -
Java容器-List
Java集合类 List概要图Java中常用集合类常用集合类主要分为Collection和Map两大分支。橙色表示接口,蓝色表示实现类。线性结构Java中使用List接口描述线性结构,其实现类使用最频繁的有ArrayList(数组线性表)和LinkedList(双向链表)。List里存放的对象时有序的,同时也是可以重复的,并提供了按索引访问的方式。List接...原创 2018-04-11 23:02:41 · 1630 阅读 · 0 评论 -
Java中Comparable和Comparator两种比较器
Java中Comparable和Comparator两种比较器Comparable 和 Comparator 都是用来实现集合中元素的比较、排序的两种比较器接口,这两种比较器很相似,只是 Comparable 是在集合内部定义的方法实现的排序,可称之为内比较器,而Comparator 是在集合外部实现的排序,可称之为外比较器。所以,如果想实现排序,就需要在集合外定义 Comparator 接口...原创 2018-04-11 21:00:54 · 1289 阅读 · 0 评论 -
Java内存管理以及常量池
Java内存管理以及常量池Java的内存管理就是对象的分配和释放问题。在Java中,内存的分配是由程序完成的,而内存的释放是由垃圾回收器(Garbage Collection,GC)完成的,程序员不需要通过调用函数来释放内存,但它只能回收无用并且不再被其它对象引用的那些对象所占用的空间。首先,想要了解JAVA的内存分配,就要先知道有哪些内存模块,也就是说要了解JAVA内存模型。Java虚拟...原创 2018-02-24 19:12:27 · 1647 阅读 · 0 评论 -
web工程
web工程web工程目录图web.xml需要自行创建,位于WEB-INF目录下,且每一次修改web.xml文件都需要重新启动服务器。还可以在WEB-INF目录下创建一个lib文件夹,用以保存工程需要的jar工具包。Publish操作web工程发布之后,以工程名为文件夹名称,然后将WebContent目录下的所有文件发布到Tomcat中的wtpwebapps文件目录下以工...原创 2018-03-10 09:52:38 · 391 阅读 · 0 评论 -
Tomcat服务器
Tomcat服务器Web容器简介要想运行一个Java Web程序,则必须要有相应的Web容器支持,所有的程序代码要在容器中执行,并将最后结果交付给用户使用Web容器是一种服务程序,就是为应用服务器组(如JSP,Servlet等)提供一个运行环境,使JSP、servlet直接跟容器中的环境变量接口交互,不必关注其他系统问题,主要有web服务器来实现。常见Web容器大型(付费)...原创 2018-03-10 09:33:47 · 221 阅读 · 0 评论 -
封装类及常用类
封装类及常用类基本数据类型的封装类封装类的申明和实例化字符串转化成对应的封装类封装类转字符串Character常用方法ch表示目标字符isDigit(char ch):如果ch是数字字符返回true,否则返回falseisLetter(char ch):如果ch是字母字符返回true,否则返回falseisLetterOrDigit(char ...原创 2018-02-23 11:40:35 · 290 阅读 · 0 评论 -
HTML
HTMLHTML(Hyper Text Markup Language),即超文本标记语言。超文本(文字+图片+音频+视频+……)标记语言(浏览器看到什么样的标记就会做出什么样的反应)HTML直接用浏览器来执行。HTML经常用于编写web动态页面这里介绍一个HTML的网站,这里的HTML还是比较全面的,对于入门学习很不错:HTML教程HTML标记语言的特点...原创 2018-03-08 23:37:37 · 218 阅读 · 0 评论 -
String构造方法与内存分析
String构造方法与内存分析源代码public class StringTest { public static void main(String[] args) { //第一种构造方法 String str="Hello World!"; String str0="Hello World!"; Stri...原创 2018-02-20 21:59:48 · 190 阅读 · 0 评论 -
字符串
Java字符串String源码分析底层是一个字符数组,且数组一旦初始化便不可以被改变,为final类型。/** The value is used for character storage. */private final char value[];存储字符串的hashcode。/** Cache the hash code for the string */p...原创 2018-02-20 15:48:48 · 141 阅读 · 0 评论 -
Java集合—Map
Java集合——Map概要图映射集(Map)Java中使用Map接口描述映射结构,映射Map是一个独立的接口,描述的是键key-值value的对应关系,Map不允许键重复,并且每个键只能对应一个值,键不能重复,值可以重复,键和值都不能为空。Map接口的常用方法(这些都是源码的一些摘录,由此可见学好英语是多么重要,不然注释都可能看不懂!):int size():retu...原创 2018-04-22 11:44:43 · 189 阅读 · 0 评论 -
Java异常
Java 异常异常:在Java语言中,将程序执行中发生的不正常情况称为“异常”。(开发过程中的语法错误和逻辑错误不是异常)Java程序在执行过程中所发生的异常事件可分为两类:Error: Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。一般不编写针对性的代码进行处理Exception: 其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代...原创 2018-04-22 12:55:20 · 169 阅读 · 0 评论 -
01.JDBC的高级使用——ConnectionFactory
JDBC的高级使用——ConnectionFactoryConnectionFactory:连接工厂ConnectionFactory的作用利用工厂模式提升代码的重用性封装注册数据库的驱动和获得数据库的连接利用配置文件减少硬编码,便于维护ConnectionFactory的开发配置文件jdbcinfo.properties该后缀类型的文件存储的是键值对数据...原创 2018-04-25 14:55:17 · 9075 阅读 · 0 评论 -
HashMap底层代码学习
HashMap底层源码学习前述最近在微信工作号上看到一篇好文章,忍不住推荐一波,供大家学习,我结合文章内容再自己去翻了一翻源码,学习一下HashMap。众所周知,HashMap是一个用于存储Key-Value键值对的集合,并且是线程不安全的,其中每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个名为 table 的数组当中,该数组存储的是 Node<K, ...原创 2018-06-11 21:02:02 · 314 阅读 · 0 评论 -
通过反射机制来复制一个对象
通过反射机制来复制一个对象案例介绍Student类,有属性id,name,age,对应的get、set方法和构造方法,现产生一个Student对象。通过反射复制此Student对象。案例设计通过反射机制来获取类的属性和方法。通过反射来生成对象,并通过反射来调用其set方法来对属性进行赋值以达到复制对象的目的。最后对复制成功的对象信息进行打印。程序pa...原创 2018-05-23 15:28:15 · 476 阅读 · 0 评论 -
Java反射API
Java反射APIjava.lang.reflect库Class类和java.lang.reflect类库一起对反射的概念进行支持。java.lang包下:Class&amp;amp;amp;amp;amp;lt;T&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;gt;:表示一个正在运行的Java应用程序中的类和接口,是Reflection的起源。java.lang.reflect包下:Fi原创 2018-05-23 11:24:26 · 625 阅读 · 0 评论 -
Java反射机制
Java反射机制反射概述反射的概念是由 Smith 在1982年首次提出的,主要是程序可以访问、检测和修改它本省状态或行为的一种能力。Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类所有的属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象的方法的功能称为Java语言的反射机制。简单的来说,反射机制是指程序在运行时能够获取自...原创 2018-05-23 11:23:43 · 164 阅读 · 0 评论 -
下压堆栈(链表实现)
下压堆栈(链表实现)这份泛型的Stack实现的基础是链表数据结构。它可以用于创建任意数据类型的栈,并且实现了迭代接口,我们可以通过迭代来变量堆栈中的内容。package com.li.container;import java.util.Iterator;/*下压堆栈(链表实现)*/public class Stack<Item> implements Iter...原创 2018-05-26 20:02:33 · 266 阅读 · 0 评论 -
DAO模式开发过程
DAO模式开发步骤DAO模式开发编写连接工厂ConnectionFactory,用来获取连接、返回连接对象。编写DBUtils处理关闭JDBC三个接口。package com.li.jdbc.advanced;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;...原创 2018-05-26 09:47:12 · 2154 阅读 · 0 评论 -
迭代
迭代集合类数据类型的基本操作之一就是,能够使用Java的foreach语句通过迭代遍历并处理集合中的每个元素。这种方式的代码既清晰有简洁,且不依赖于集合数据类型的具体实现。如:Stack<String> collection = new Stack<String>();......for(String s : collection){ .........原创 2018-05-14 15:22:46 · 320 阅读 · 0 评论 -
文件与数据流
文件与数据流类概要图相关概念:文件:文件是用来存储计算机数据的,是计算机软件的重要组成部分。它可以存放在多种介质中,例如硬盘、软盘和光盘,而且还可以通过网络传输。内存:内存也可以存储计算机数据,但与存储在硬盘上的文件数据相比,存储在内存中的数据在计算机关机或掉电的时候消失。字符流(字节流):组成文件的字符序列(字节序列)...原创 2018-04-27 23:13:35 · 1783 阅读 · 0 评论 -
接口实例化——匿名内部类
接口实例化——匿名内部类public Interface IFly { void fly();}public class Bird { public Bird() { } public void fly(IFly f) { f.fly(); }}public class Test { public static ...转载 2018-04-27 19:03:33 · 2530 阅读 · 0 评论 -
Java嵌套类和内部类
Java内部类内部类1. 静态内部类(内部类中最简单的形式)声明在类体部,方法体外,并且使用static修饰的内部类访问特点可以类比静态变量和静态方法脱离外部类的实例独立创建在外部类的外部构建内部类的实例new Outer.Inner();在外部类的内部构建内部类的实例new Inner();静态内部类体部可以直接访问外部类中所有的静态成员,包含私...原创 2018-04-27 14:49:34 · 899 阅读 · 0 评论 -
数组
数组数组的声明数组是相同类型的数据按顺序组成的一种复合数据类型。通过数组名加数组下标,来使用数组中的数据。下标从 0 开始排序。声明一维数组数组元素类型[ ] <数组名>;声明二维数组数组元素类型[ ][ ] <数组名>;数组的实例化声明数组仅仅是给出了数组名字和元素的数据类型,要想真正的使用数组必须为它分配内存空间,即实例化数...原创 2018-02-20 11:26:11 · 485 阅读 · 0 评论 -
JDBC中常用的类和接口
JDBC中常用的类和接口Connection接口Connection接口代表与特定的数据库连接,在连接上下文中执行SQL语句并返回结果。 方法 功能描述 createStatement() 创建一个Statement对象 createStatement(int resultSetType, int resultSetConcurrency) 创...原创 2018-03-08 16:36:33 · 5139 阅读 · 0 评论 -
Java方法调用的值传递方式
方法调用的值传递方式指的是在方法调用时从方法的调用参数代入到方法定义的参数的方式。(实际参数和形式参数的概念) 在Java中,方法调用的参数传递方式基本上采用值传递方式。基本数据类型在进行方法调用时,首先将调用参数表达式的存储单元的内容赋值给定义参数变量的存储单元,即将调用参数表达式的值赋值给定义参数变量,从而使得定义参数变量的值与调用参数表达式的值相同,这个过程称为参数传递。因为调用参...原创 2017-12-02 21:56:49 · 1000 阅读 · 0 评论 -
Java集合类-Set
Java集合类-Set概要图集合SetJava中使用Set接口描述一个集合(集合不允许有“重复值”,注意重复的概念),集合Set是Collection的子接口,Set不允许其数据元素重复出现,也就是说在Set中每一个数据元素都是唯一的。Set接口定义的常用方法如下: 序号 方法 描述 1 size() 获取Set尺寸(即Set包含数据元素的总数...原创 2017-12-15 23:15:33 · 6364 阅读 · 0 评论 -
浅析Java中的hashcode方法
今天在网上看到一片很好的文章,忍不住要转过来收藏一波,其中在代码处稍作了些修改。 先表明转载的出处: https://www.cnblogs.com/dolphin0520/p/3681042.html哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率。在Java的Object类中有一个方法:public native int hashCode();根据这个转载 2017-12-06 21:20:38 · 412 阅读 · 1 评论 -
Java字符串生成器StringBuilder
创建成功的字符串对象,其长度是固定的,内容不能被改变和编译。虽然使用“+”可以达到附加新字符或字符串的目的,但“+”会产生一个新的String实例,会在内存中创建新的字符串对象。如果重复地对字符串进行修改,将极大地增加系统开销。而 J2SE5.0新增了可变的字符序列StringBuilder类,大大提高了频繁增加字符串的效率验证时间效率public class Jerque { // 新建类原创 2017-11-22 00:09:35 · 651 阅读 · 0 评论 -
字符串中字符删除ac和b
问题 一个字符串,其中只有小写的字母,按条件删除 1、当字符串中有ac挨着的情况下,把ac删除 2、当字符串中有b 把b删除 3、最好只遍历一次Analyse 想一想要从字符串里面删除字符,但是又要移动字符的话好麻烦,首先考虑到StringBuilder类,使用这个类就比较简单了源代码public class Interview { public static void mai原创 2017-11-23 23:38:23 · 2159 阅读 · 0 评论 -
数据结构:手动编写Java栈
栈栈是存放对象的一种特殊容器,在插入与删除对象时,这种结构遵循后进先出(last-in-first-out, LIFO)的原则栈ADT作为一种抽象数据类型(ADT),栈必须支持下列的基本方法:push():将对象压至栈顶,并输出栈顶对象pop():若栈非空,则将栈顶元素移除,并将其返回;否则,报错getSize():返回栈内当前对象的数目isEmpty():检查栈是否为空top():若原创 2017-12-04 14:27:24 · 284 阅读 · 0 评论 -
HaspMap底层代码学习
前述最近在微信工作号上看到一篇好文章,忍不住推荐一波,供大家学习,关注这个微信号还是能学到一些东西的,下面微信工作号文章的地址 什么是HashMap众所周知,HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干。HashMap数组每一个元素的初始值都是Null。...原创 2017-12-12 16:44:45 · 388 阅读 · 1 评论 -
回形数字矩阵(Java)
问题 解决思想(递归) 将矩阵从里到外分为多层,每一层都是一个口字型数字序列,方向都是顺时针,由此我们可以将问题分解为相同的子问题,采用递归算法源代码import java.util.Scanner;/** * * @author Vinsmoke * * * 打印回形矩阵 * * */public class Pattern { static int n;原创 2017-11-23 14:46:44 · 11577 阅读 · 5 评论 -
Java日期类
java.lang.System类System类提供的public static long currentTimeMillis()用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。此方法适于计算时间差。java.util.Date类Date( )使用Date类的无参数构造方法创建的对象可以获取本地当前时间。Date(long date)getTi...原创 2017-12-08 19:43:59 · 217 阅读 · 0 评论 -
== 与 equals()
== 与 equals()== 是一个运算符Equals则是string对象的方法我们比较无非就是这两种:1、基本数据类型的比较 2、引用对象的比较基本数据类型比较==比较两个值是否相等,相等为true,否则为false;而equals()是String类的方法,不用来比较基本数据类型。引用对象比较==比较两个对象是否指向内存中的同一个对象,即指向同一个地址...原创 2018-02-26 22:17:03 · 131 阅读 · 0 评论 -
JavaSE和JavaEE的区别
JavaSE和JavaEE的区别JavaEE:Java Enterprise Edition,Java企业版,多用于企业级开发,包括web开发等等。企业版本帮助开发和部署可移植、健壮、可伸缩切安全的服务端Java应用。Java EE是在JavaSE的基础上构建的他提供Web 服务、组建模型、管理和通信API.可以用来实现企业级的面向服务体系结构(service-oriented archit...原创 2018-03-06 20:43:50 · 70934 阅读 · 0 评论 -
Java标识符&关键字&基本数据类型
Java标识符由英文字母、数字、_(下划线)和$组成,长度不限。其中英文字母包含大写字母(A~Z)和小写字母(a~z),数字包含0到9。标识符的第一个字符不能是数字(即标识符不能以数字开头)。标识符区分大小写。标识符不能包含空格。标识符用来命名变量、符号常量、数组、方法、类、对象、接口、包等。为了提高程序的可读性,标识符最好“见名知义”,而且规范大小写的使用方式。Java关...原创 2018-02-13 21:19:22 · 557 阅读 · 0 评论 -
面向对象——上转型
面向对象——上转型定义父类声明,子类实例化的对象称为上转型对象。上转型对象的使用上转对象不能操作子类新增的成员变量,失掉了这部分属性,不能使用子类新增的方法,失掉了一些功能。上转型对象可以操作子类继承的成员变量,也可以使用子类继承的或重写的方法。如果子类重写了父类的某个方法后,当对象的上转型对象调用这个方法时一定是调用了子类重写的方法。因为程序在运行时知道,这个上转对象的...原创 2018-02-19 21:23:36 · 379 阅读 · 0 评论 -
面向对象——继承、访问权限
面向对象——继承、访问权限包的声明:package关键字包是java语言有效管理类的方式,将同一个应用的类打入一个包中,把不相关或者是完成不同功能的类放入不同的包中,使得管理类变的更容易。package语句作为Java源文件的第一条语句,指明该源文件定义的类所在的包。package语句的一般语法格式为:package <包名>包的引入:import关键字...原创 2018-02-19 10:45:32 · 195 阅读 · 0 评论 -
面向对象-封装
面向对象——封装封装——类的构成Java是面向对象语言,它的源程序是由若干个类组成,源文件是扩展名为.java的文本文件。类是Java中最基本的组成单元,Java将描述一类事物的属性(状态)和功能(行为)封装在一起,属性用成员变量来刻画;功能通过方法来体现。class <类名> { <变量类型> <变量名1>; <...原创 2018-02-18 21:19:44 · 167 阅读 · 0 评论