java
挽歌亽朽年
平生不做皱眉事,世上应无切齿人!
展开
-
集合框架(容器)
集合框架1.List集合下的ArrayList、Lin用到kedList2.Set集合下的HashSet、TreeSet3.Map集合常用的是HashMap、TreeMap,要是涉及到线程安全问题的会用到ConcurrentHashMapList、Set 和 Map集合的区别List、Set 和 Map集合它们都是Collection 接口下的子接口,它们的区别是 :1.List集合存储的是一组,有序的、可重复的对象2.Set集合存储的是一组,无序的、不重复的对象3.Map集合使用键值对(原创 2020-09-08 22:03:21 · 242 阅读 · 0 评论 -
原型模式
在有些系统中,存在大量相同或相似对象的创建问题,如果用传统的构造函数来创建对象,会比较复杂且耗时耗资源,用原型模式生成对象就很高效,就像孙悟空拔下猴毛轻轻一吹就变出很多孙悟空一样简单原型模式的定义与特点原型(Prototype)模式的定义如下:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节。原型模式的结构与实现由于 Java 提供了对象的 clone() 方法,所以用原创 2020-09-08 17:09:09 · 137 阅读 · 0 评论 -
单例模式
单例模式在有些系统中,为了节省内存资源、保证数据内容的一致性,对某些类要求只能创建一个实例,这就是所谓的单例模式。单例模式的定义与特点单例(Singleton)模式的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式。例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误。在计算机系统中,还有 Windows 的回收站、操作系统中的文件系统、多线程中的线程池、显卡的驱动程序对象、打印机的后台处理服务原创 2020-09-08 16:54:04 · 185 阅读 · 0 评论 -
多线程编程
多线程编程世间万物都可以同时完成很多工作,例如,一部手机既可以听歌,也可以看小说,这些活动的完成可以同时进行。这种同时执行多个操作的思想在java中被称为并发,而将并发完成的每一件事称为线程。单线程环境就像排队一样,需要等任务1完成,然后任务2再完成。多线程环境从中可以发现,CPU 完全可以在任务 1 和任务 2 之间来回切换,使任务 2 不必等到 5 秒再运行,系统的运行效率大大得到提升。线程线程可以理解成是在进程中独立运行的子任务多线程的实现方式实现多线程编程的方式主要有两种 :一种是继原创 2020-09-08 15:04:46 · 215 阅读 · 0 评论 -
常用类 —— 基本类型包装类
基本类型包装类概述为什么会有基本类型包装类将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据常用操作常用的操作之一:用于基本数据类型与字符串之间的转换基本类型和包装类的对应byte -> Byteshort ->Shortint -> Integerlong ->Lomgdouble ->Doublefloat ->Floatchar ->Characterboolean ->Boolean基本类型和对象转换原创 2020-05-18 16:18:09 · 361 阅读 · 0 评论 -
常用类 —— Arrays类
Arrays类概述及其常用方法Arrays类概述针对数组进行操作的工具类提供了排序,查找等功能成员方法public static String toString(int[] a)public static void sort(int[] a)public static int binarySearch(int[] a,int key)Arrays类常用方法源码详细解释public static String toString(int[] a)源码解析public static int原创 2020-05-17 17:53:50 · 126 阅读 · 0 评论 -
常用类 —— 数组高级
数组高级(排序和查找)排序冒泡排序相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处选择排序从0索引开始,依次和后面元素比较,小的往前放,第一次完毕,最小值出现在了最小索引处查找基本查找 数组元素无序二分查找 数组元素有序...原创 2020-05-16 20:47:51 · 118 阅读 · 0 评论 -
常用类 —— StringBuffer类
StringBuffer类概述及其构造方法StringBuffer类概述我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。而StringBuffer就可以解决这个问题线程安全的可变字符序列StringBuffer和String的区别简单地说,就是一个变量和常量的关系。StringBuffer对象的内容可以修改;而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象StringBuffer的内部实现方式和String不同,StringBuff原创 2020-05-14 12:47:05 · 192 阅读 · 0 评论 -
常用类 —— String类
String类概述及其构造方法String类概述字符串是由多个字符组成的一串数据(字符序列)字符串可以看成是字符数组构造方法public String()public String(byte[] bytes)public String(byte[] bytes,int offset,int length)public String(char[] value)public String(char[] value,int offset,int count)public String(Stri原创 2020-05-13 10:50:43 · 237 阅读 · 0 评论 -
常用类 —— Scanner类
Scanner类概述及其构造方法Scanner类概述JDK5以后用于获取用户的键盘输入构造方法public Scanner(InputStream source)Scanner类的成员方法基本格式hasNextXxx() 判断是否还有下一个输入项,其中Xxx可以是Int,Double等。如果需要判断是否包含下一个字符串,则可以省略XxxnextXxx() 获取下一个输入项。Xxx的含义和上个方法中的Xxx相同默认情况下,Scanner使用空格,回车等作为分隔符常用方法public原创 2020-05-12 22:48:13 · 138 阅读 · 0 评论 -
常用类 —— Object类
Object类概述及其构造方法Object类概述类层次结构的根类所有类都直接或者间接的继承自该类构造方法public Object()回想面向对象中为什么说:子类的构造方法默认访问的是父类的无参构造方法Object类的成员方法public int hashCode()public final Class getClass()public String toString()public boolean equals(Object obj)protected void fin原创 2020-05-11 20:46:48 · 91 阅读 · 0 评论 -
API
API概述API(Application Programming Interface)应用程序编程接口编写一个机器人程序去控制机器人踢足球,程序就需要向机器人发出向前跑、向后跑、射门、抢球等各种命令,没有编过程序的人很难想象这样的程序如何编写。但是对于有经验的开发人员来说,知道机器人厂商一定会提供一些用于控制机器人的Java类,这些类中定义好了操作机器人各种动作的方法。其实,这些Java类就是机器人厂商提供给应用程序编程的接口,大家把这些类称为Xxx Robot API学习汉语和学习编程的异同点相原创 2020-05-10 17:45:17 · 137 阅读 · 0 评论 -
集合 —— Collections
Collections类概述针对集合操作 的工具类Collections成员方法public static void sort(List list)public static int binarySearch(List<?> list,T key)public static T max(Collection<?> coll)public static vo...原创 2020-05-08 08:54:39 · 108 阅读 · 0 评论 -
集合 —— Map
Map接口概述将键映射到值的对象一个映射不能包含重复的键每个键最多只能映射到一个值Map接口和Collection接口的不同Map是双列的,Collection是单列的Map的键唯一,Collection的子体系Set是唯一的Map集合的数据结构值针对键有效,跟值无关Collection集合的数据结构是针对元素有效Map接口成员方法V put(K key,V value)V ...原创 2020-05-07 20:56:20 · 127 阅读 · 0 评论 -
集合 —— Set
Set接口概述一个不包含重复元素的 collectionSet案例存储字符串并遍历存储自定义对象并遍历HashSet类概述不保证 set 的迭代顺序特别是它不保证该顺序恒久不变HashSet如何保证元素唯一性底层数据结构是哈希表(元素是链表的数组)哈希表依赖于哈希值存储添加功能底层依赖两个方法:int hashCode()boolean equals(Object obj...原创 2020-05-06 18:09:38 · 97 阅读 · 0 评论 -
集合 —— 泛型及其他
为什么会有泛型呢?通过案例引入早期的Object类型可以接收任意的对象类型,但是在实际的使用中,会有类型转换的问题。也就存在这隐患,所以Java提供了泛型来解决这个安全问题泛型应用泛型类把泛型定义在类上格式:public class 类名<泛型类型1,…>注意:泛型类型必须是引用类型泛型方法把泛型定义在方法上格式:public <泛型类型> 返回类型 方...原创 2020-05-05 20:38:27 · 232 阅读 · 0 评论 -
集合 —— List接口
List接口概述有序的 collection(也称为序列)此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素与 set 不同,列表通常允许重复的元素List接口成员方法void add(int index,E element)E remove(int index)E get(int index)E se...原创 2020-05-04 21:16:26 · 97 阅读 · 0 评论 -
集合——Iterator接口
Java集合类库将集合的接口与实现分离。同样的接口,可以有不同的实现Java集合类的基本接口是Collection接口。而Collection接口必须继承java.lang.Iterable接口Iterator接口概述对 collection 进行迭代的迭代器依赖于集合而存在Iterator接口成员方法boolean hasNext()E next()Iterator接口的着三个方...原创 2020-05-03 08:51:26 · 111 阅读 · 0 评论 -
集合——collection接口
集合类概述为什么出现集合类?面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,Java就提供了集合类数组和集合类同是容器,有何不同?数组虽然也可以存储对象,但长度是固定的;集合长度是可变的。数组中可以存储基本数据类型,集合只能存储对象集合类的特点集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象Collection接口概述Collection ...原创 2020-05-03 08:45:29 · 185 阅读 · 0 评论 -
其他流
操作基本数据类型的流操作基本数据类型DataInputStreamDataOutputStream内存操作流操作字节数组ByteArrayInputStreamByteArrayOutputStream操作字符数组CharArrayReaderCharArrayWrite操作字符串StringReaderStringWriter打印流打印流概述字节流打印流字符打印...原创 2020-05-02 10:35:30 · 158 阅读 · 0 评论 -
字符流及转换流
转换流概述OutputStreamWriter 字符输出流public OutputStreamWriter(OutputStream out)public OutputStreamWriter(OutputStream out,String charsetName)InputStreamReader 字符输入流public InputStreamReader(InputStream i...原创 2020-05-01 13:22:38 · 155 阅读 · 0 评论 -
编码
编码表概述和常见的编码表编码表由字符及其对应的数值组成的一张表常见编码表ASCII/Unicode 字符集ISO-8859-1GB2312/GBK/GB18030BIG5UTF-8字符串中的编码问题编码把看得懂的变成看不懂的解码把看不懂的变成看得懂的...原创 2020-04-30 20:27:32 · 107 阅读 · 0 评论 -
字节流
字节流写数据OutputStreamFileOutputStream往一个文本文件中写一句话:”helloworld”分析发现其实更适合用字符流,但是由于字节流先出现,所以,我们考虑先使用字节流后面再讲会什么出现字符流。FileOutputStream的构造方法FileOutputStream(File file)FileOutputStream(String name)字节流写数...原创 2020-04-30 20:21:13 · 99 阅读 · 0 评论 -
IO流
IO流分类按照数据流向输入流 读入数据输出流 写出数据按照数据类型字节流字符流什么情况下使用哪种流呢?如果数据所在的文件通过windows自带的记事本打开并能读懂里面的内容,就用字符流。其他用字节流。如果你什么都不知道,就用字节流IO流常用基类字节流的抽象基类:InputStream ,OutputStream字符流的抽象基类:Reader , Writer注:由这四...原创 2020-04-29 20:47:41 · 90 阅读 · 0 评论 -
递归
递归的思想概述递归方法定义中调用方法本身的现象递归注意实现要有出口,否则就是死递归次数不能太多,否则就内存溢出构造方法不能递归使用递归解决问题的思想找到出口找到规律...原创 2020-04-29 20:45:41 · 103 阅读 · 0 评论 -
File类
File类概述和构造方法File类的概述文件和目录路径名的抽象表示形式构造方法public File(String pathname)public File(String parent,String child)public File(File parent,String child)File类的成员方法创建功能public boolean createNewFile()pub...原创 2020-04-28 18:08:15 · 99 阅读 · 0 评论 -
异常
异常概述异常:异常就是Java程序在运行过程中出现的错误。异常由来:问题也是现实生活中一个具体事务,也可以通过java 的类的形式进行描述,并封装成对象。其实就是Java对不正常情况进行描述后的对象体现我们见过的异常,角标越界异常,空指针异常异常分类图解异常举例除数为0数组访问越界JVM的默认处理方案把异常的名称,错误原因及异常出现的位置等信息输出在了控制台程序停止执行异常...原创 2020-04-23 11:18:45 · 122 阅读 · 0 评论 -
Math类与代码块
通过API学习Math类Math类概述Math包含用于执行基本数学运算的方法Math类特点没有构造方法,因为成员都是静态的Math类讲解一个方法获取随机数获取1-100之间的随机数代码块在Java中,使用{}括起来的代码被称为代码块,根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块(多线程讲解)局部代码块在方法中出现;限定变量生命周期,及早释放,...原创 2020-04-22 20:02:23 · 139 阅读 · 0 评论 -
帮助文档
制作帮助文档制作工具类ArrayTools制作帮助文档(API)javadoc -d 目录 -author -version ArrayTool.java使用帮助文档找到文档,打开文档点击显示,找到索引,出现输入框你应该知道你找谁?举例:Scanner看这个类的结构(需不需要导包)成员变量 字段构造方法 构造方法成员方法 方法看这个类的说看构造方法看成员方法然后使用...原创 2020-04-21 21:01:22 · 173 阅读 · 0 评论 -
静态变量和成员变量的区别
静态变量和成员变量的区别所属不同静态变量属于类,所以也称为为类变量成员变量属于对象,所以也称为实例变量(对象变量)内存中位置不同静态变量存储于方法区的静态区成员变量存储于堆内存内存出现时间不同静态变量随着类的加载而加载,随着类的消失而消失成员变量随着对象的创建而存在,随着对象的消失而消失调用不同静态变量可以通过类名调用,也可以通过对象调用成员变量只能通过对象名调用main...原创 2020-04-20 17:08:21 · 154 阅读 · 0 评论 -
static关键字
static关键字可以修饰成员变量和成员方法static关键字特点随着类的加载而加载优先于对象存在被类的所有对象共享这也是我们判断是否使用静态关键字的条件可以通过类名调用static关键字注意事项在静态方法中是没有this关键字的静态方法只能访问静态的成员变量和静态的成员方法...原创 2020-04-20 16:54:13 · 83 阅读 · 0 评论 -
封装
封装封装概述是指隐藏对象的属性和实现细节,仅对外提供公共访问方式好处:隐藏实现细节,提供公共的访问方式提高了代码的复用性提高安全性封装原则:将不需要对外提供的内容都隐藏起来把属性隐藏,提供公共方法对其访问private关键字private关键字:是一个权限修饰符可以修饰成员(成员变量和成员方法)被private修饰的成员只在本类中才能访问private最常见的应用:...原创 2020-04-18 20:06:11 · 441 阅读 · 0 评论 -
匿名对象
匿名对象匿名对象:就是没有名字的对象。是对象的一种简化表示形式匿名对象的两种使用情况对象调用方法仅仅一次的时候作为实际参数传递原创 2020-04-18 19:59:08 · 100 阅读 · 0 评论 -
成员变量和局部变量的区别
在类中的位置不同成员变量 类中方法外局部变量 方法内或者方法声明上在内存中的位置不同成员变量 堆内存局部变量 栈内存生命周期不同成员变量 随着对象的存在而存在,随着对象的消失而消失局部变量 随着方法的调用而存在,随着方法的调用完毕而消失初始化值不同成员变量 有默认的初始化值局部变量 没有默认的初始化值,必须先定义,赋值,才能使用形式参数问题形式参数 :在定义函数名和函数...原创 2020-04-17 11:04:13 · 117 阅读 · 0 评论 -
对象的内存图
1个对象的内存图一个对象的基本初始化过程2个对象的内存图方法的共用3个对象的内存图其中有两个引用指向同一个对象原创 2020-04-17 10:42:13 · 135 阅读 · 0 评论 -
类与对象及其使用
类与对象关系我们学习编程语言,就是为了模拟现实世界的事物,实现信息化。比如:去超市买东西的计费系统,去银行办业务的系统。我们如何表示一个现实世界事物呢:属性 就是该事物的描述信息行为 就是该事物能够做什么*举例:*学生事物类:是一组相关的属性和行为的集合对象:是该类事物的具体体现举例:类 学生对象 班长就是一个对象类与对象的关系如图类的定义现实世界的...原创 2020-04-16 12:04:38 · 127 阅读 · 0 评论 -
面对对象思想
面向过程思想概述我们来回想一下,这几天我们完成一个需求的步骤:首先是搞清楚我们要做什么,然后在分析怎么做,最后我们再代码体现。一步一步去实现,而具体的每一步都需要我们去实现和操作。这些步骤相互调用和协作,完成我们的需求。在上面的每一个具体步骤中我们都是参与者,并且需要面对具体的每一个步骤和过程,这就是面向过程最直接的体现。那么什么是面向过程开发呢? 面向过程开发,其实就是面向着具体的每一个步...原创 2020-04-16 12:04:08 · 76 阅读 · 0 评论 -
java的内存分配
Java中的内存分配ava 程序在运行时,需要在内存中的分配空间。为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式栈 存储局部变量堆 存储new出来的东西方法区 (面向对象部分讲)本地方法区 (和系统相关)寄存器 (给CPU使用)Java中数组的内存图解图解1:定义一个数组,输出数组名及元素。然后给数组中的元素赋值,再次输出数组名...原创 2020-04-15 19:26:49 · 88 阅读 · 0 评论 -
二维数组
二维数组概述二维数组的每一个元素是一个一维数组二维数组定义格式格式1数据类型[][] 变量名 = new 数据类型[m][n];m表示这个二维数组有多少个一维数组n表示每一个一维数组的元素个数举例:int[][] arr = new int[3][2];格式2数据类型[][] 变量名 = new 数据类型[m][];m表示这个二维数组有多少个一维数组这一次没有直接给出一维数...原创 2020-04-15 19:24:32 · 118 阅读 · 0 评论 -
数组
数组概括数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器(数组长度是固定的,数组中存储的元素的数据类型要求一致)数组既可以存储基本数据类型,也可以存储引用数据类型数组的定义格式格式1:数据类型[] 数组名;格式2:数据类型 数组名[];注意:这两种定义做完了,数组中是没有元素值的数组的初始化数组初始化概述:Java中的数组必须先初始化,然后才能使用所谓初始化:就是...原创 2020-04-15 19:20:52 · 80 阅读 · 0 评论