- 博客(31)
- 收藏
- 关注
原创 2021.12.20学习记录
一、JavaBean的概念 任何一个类都可以叫做JavaBean文件 JavaBean命名规范: 1)对于类中的属性,需要使用get与set方法 2)对于布尔类型的属性,可以将get方法替换为is方法 3)JavaBean中的某些属性可以不符合以上两条规则,但是该属性必须是public的 二、内省 用于获取JavaBean中的属性,类似于Class类的使用,但是一般,内省用于动态获取初始化 ...
2021-12-20 19:52:13
53
原创 2021.12.18学习记录
一、UDP协议 是一种无线连接的协议,每个数据对象都是一个独立的信息,没一个数据对象的都有一个唯一的地址保存 两个实现类:DatagramePacket、DatagrameSocket 二、MINA框架 实际意义为一个简易的TCP通信JAVA框架,服务端与客户端建立连接,但是服务端不需要保证每条信息都被客户端接收,客户端接受的每一条消息也不需要向服务端说明已接收 设计思想: 创建连接、设计过滤规则、编写消息处理器 三、反射与内省 对于任何一个类,都可以在外部设计一个类,来获取目标类的内部属性
2021-12-18 21:47:00
683
原创 2021.12.15学习记录
一、线程死锁 线程死锁问题,即在多个线程之间,当线程都需要先获取资源再释放资源时,就会发生死锁问题 为了避免线程发生死锁,应尽量控制线程在获取资源对象时,即对资源上锁后,不在调用其他对象 注:线程死锁问题不能解决,只能避免出现 二、线程生命周期与线程池 每一个线程在被创建时即赋有生命,在此线程结束使用后,生命消失。在程序中,创建一个新的线程是一个非常消耗性能的操作,而每一个线程的任务可能很短就结束生命周期。为了让线程循环使用,避免浪费性能,因此创立线程池 线程池:将创立的线程放入其中,然后使得线
2021-12-15 21:27:22
468
原创 2021.12.14学习记录
一、线程实现的两种方式 线程实现的两种方式: 1)直接继承Thread类,实现线程 使用方法: public class MyThread extendsThread{ 代码块} Thread t = newMyThread() t.start 2)实现Runnable接口 使用方法: public class MyRunnable implementsRunnable{ 代码块} MyRunnable mr = newRunnable() ...
2021-12-14 21:17:18
55
原创 2021.12.13学习记录
一、Guava开发源组件 一个拓展组件,具有以下特点: 1、不可变集合:提高防御性和编程能力 2、新集合类型:mutilists,mutilmap,tables等 3、强大的集合工具类:提供collection集合类没有的接口 4、拓展工具类:让拓展变得更容易 二、线程的并发与并行 进程:一个程序,是一个静态的事物,当这个程序开始运行,变为动态的,此时的程序即为进程 进程包含三种状态,分别是阻塞,就绪,运行;并依次进行 线程:当一个进程执行以后,里面的程序又可以划分为若干个进程,进线程是依
2021-12-13 21:02:55
162
原创 2021.12.12学习记录
一、Collections工具类 Collections工具类内部提供了大量针对Collection/Map的方法,都为静态方法。总体分为以下四类: 1、排序操作(针对List接口): 1)reverse(List list):指定元素进行序列反转 2)shuffle(List list):对集合中的元素进行随机排序 3)sort(List list):对集合进行升序操作 4)sort(List list,Comparator com):自定义比较器升序操作 5)swap(List list.
2021-12-12 23:24:35
154
原创 2021.12.11学习记录
一、Map接口 内部包含映射键值对,其中,键不能重复,但是值可以 使用方法: Map<key的数据类型,vaule的数据类型> map = new xxMap<>() (因为Map是一个接口,不能具体是实现,因此只能用来接收) 当键相同时,后添加的键的值会覆盖前面的值,但是键不会改变 其具体实现类有以下几个: HashMap、HashTable、LinkedHashMap、TreeMap 二、HashMap实现类 基于Hash表与Map接口实现,提供所有可选择的..
2021-12-11 17:14:44
472
原创 2021.12.9学习记录
一、HashSet集合 HashSet集合,是Set接口下面的一个具体实现类,在HashSet里面的具体实现是靠HashMap, 在HashSet内部,是一个hash函数(内部存储方式是一个数组,在数组的每个位置又有一个链表来存储) 在HashSet集合里面的数据,可以包含NULL,但是不能包含重复的元素,判定不能重复的元素是因为内部有两个比较方法 1)hashcode方法:判断两个对象的hashcode值是否相等(内部是一个算法,主要是判定位置是否相同),如果位置不相同,则判定为不重复元素,否则就
2021-12-09 21:12:04
254
原创 2021.12.8学习记录
一、NIO与缓冲区 NI,是new IO,在JDK1.4以后加入,目的是为了实现高速IO,减少原来IO流技术,减轻代码负担,用较少的代码代替之前的一堆代码 实现:其实质还是通过缓冲区,通过NIO对象,直在缓冲区进行操作,从而提升速度 每个数据类型(除了布尔类型),都有一个缓冲类型 CharBuffer ByetBuffer IntBuffer LongtBuffer ShortBuffer FloatBuffer DoubleBuffer 二、通道文件 通道,Channel 对象,类
2021-12-08 22:11:16
219
原创 2021.12.6学习记录
一、RandomAccessFile 是IO的包类,从Obect类直接继承而来,只能对文件操作,可以进行读和写操作;在其中可以写入,模式,为 r(只读),w(只写),rw(读写),当且仅当使用模式r时,文件会异常 在JDK1.4以后,被memory-mapped files取代 使用方法: RandomAccessFile raf = newRandomAccessFile("文件","模式") 二、Properties 配置文件,之前在程序国际化中讲过,但是此时在IO流之中,不仅可以读取,还.
2021-12-06 21:20:00
149
原创 2021.12.05学习记录
一、打印流 可以使得程序中的效果很方便的经行输出 字节打印流:PrintStream 字符打印流:PrintWriter 二、对象流与序列化 对象流的两个类 1、ObjectOutputStream:将对象进行序列化,写入到文件中 2、ObjectInputStream:将之前序列化的文件进行反序列化到程序中 对象序列化:就是把对象写入到输出流之中,,用来存储或船宿,反序列化就是将其读取出来 通常将序列化的对象以数组的方式进行保存 transient关键字:当某个对象或者属性的值不需要序
2021-12-05 21:36:57
42
原创 2021.12.03学习记录
一、字节输入输出流 流:一切对象数据传输的总称或抽象 1、输出:从程序中向文件访问输出 类:OutputStream,时所有字节输出流的父类,通常使用其子类FileOutputStream类实现 OutputStream out= new FileOutputStream() 2、输入:从文件中向程序访问输入 类:InputStream,时所有字节输出流的父类,通常使用其子类FileInputStream类实现 InputStream in= new FileInputStream() ..
2021-12-03 21:12:15
169
原创 2021.12.02学习记录
一、Lambada表达式: 用于实现接口中的方法,前提是接口中只有一个方法 1、表达式 (参数1,参数2,。。。) -> {代码} 1)当没有参数是使用表达式,可以直接使用 2)带参数时,直接将参数传入,可以不用写参数类型, 3)代码只有一句时,可以省略掉大括号 4)代码如果有多句,不能省略大括号 5)有返回值时,直接写入返回的值,不用写return 6)参数用finnal修饰时,则必须照写接口方法中的参数 注:接口类中的静态方法和构造方法不会影响表达式的使用 二、file类的使
2021-12-02 20:54:56
35
原创 2021.12.1学习记录
一、Cloneable接口 将对象复制一份,称为对象的克隆。为了实现一些短暂显示的,而又不得不实现的对象设计的一个类,比如飞机大战中的子弹 如果某个类要实现Cloneable。 1)必须实现其接口 2)重写Object中的clone方法 然后直接调用方法 二、System与Runtime类 System类中,常用有输入(System.in),输出(System.out)和错误输出(System.erro),会显红 System.arrayCopy是常用的拷贝方法 Runtime类的使用,可
2021-12-01 21:36:33
554
原创 2021.11.30学习记录
一、程序国际化 将程序设定为在不同的语言环境下,有不同的显示效果 使用Locale对象接收语言环境,,参数为:地区,语言 Locale locale_CN = new Locale("zh","CN") 1、properties关键字:属性文件(配置文件),在其中用键值对表示不同的语言环境,写法为: ..._zh_CN.properties(...表示文件名,zh_CN表示语言环境,语言环境为固定写法两者之间采用_连接) 2、ResourceBundle 一个...
2021-11-30 20:21:00
55
原创 2021.11.29学习记录
一、String String表示一个字符串,内部使用字符数组实现, 1、String赋值的两种方式:(建议采用第一种) 1)直接赋值 String = "学习" 2)使用对象赋值 String str = new String(); str = "学习" String对象在使用时,会自动创建一个对象,如果之前在常量区没有创建常量,该对象会在常量区创建变量,相当于创建两个对象 2、编译期与运行期分析 String在编译期时,如果值可以确定,那么就使用已有的对象,否则创建新的对象,当给St
2021-11-29 20:56:59
60
原创 2021.11.28学习记录
异常 异常即阻止当前方法或作用域继续执行的问题,是程序中导致程序中断运行的指令 异常处理的方法 1)使用try{}...catch(Exception e){}语句,在try语句中写入异常产生以后的执行语句,catch表示捕获异常, 注:每一个try语句以后可以有多个catch语句 可以try{}...catch{},出现,可以try{}.....finally{}出现,但是不可以try{}.,catch{},finally{}单独出现 在1.7版本以后,可以在使用try(), 2)使用thr
2021-11-28 21:34:09
111
原创 2021.11.26学习记录
一、递归算法 方法本身调用自己,即为递归算法 递归算法的内容相对简洁,实现简单,但是,相对而言需要更多的内存空间 二、链表与数组 都为线性数据结构 链表:适合插入,删除,不适合查找,遍历,不宜过长,否则会导致遍历性功能下降 数组:适合查找,遍历,不适合插入,删除,固定长度 ...
2021-11-26 17:23:00
240
原创 2021.11.25学习记录
一、工厂代理模式 其设计思想主要为,将对象自己作为一个参数,传入到第三方对象,使得自己并不直接对方法和属性进行方法,降低关联程度与耦合性 二、静态代理模式 其设计思想主要通过引入第三方对象,使用第三方对象来调用原本对象的方法和属性,自己本身并不进入,降低耦合性 三、适配器模式 其设计思想主要引入第三方对象,使得第三方对象能够满足需要,然后对于其他不满足需要的对象,通过此对象的转换,来达到目的对象的需要 四、内部类 1)成员内部类 在一个类的内部直接定义一个类 2)方法内部类 在方法中定义
2021-11-25 20:31:35
124
原创 2021.11.24学习记录
一、instanceof关键字 用于检查对象是否为指定类型,通常在把父类强制转换为子类对象是使用 用法: 子类对象 instanceof 父类类型:返回值为Boolean值 二、抽象类模板方法设计模式 定义一个操作算法的基本骨架(把共有部分抽象出来写在一个抽象类中),将一些可变部分的实现写在子类中,调用子类对象实现 好处:只需要改变某一部分即可实现想要的功能 三、接口策略设计模式 定义一系列算法并封装起来,并可以交替使用,用来实现不同的功能,此时是把相同的操作方法抽象出来写在一个接口中 ..
2021-11-24 20:39:41
35
原创 2021.11.23学习记录
一、final关键字 1)使用final关键字修饰变量为常量,常量的命名建议使用全大写,一般配合public static一起使用,不区分先后顺序 2)使用final关键字修饰的方法为最终方法,可以被继承但是无法被重写 3)使用final修饰的类为最终类,不可以被继承 4)在方法参数中使用final修饰参数,在方法内部不能修改参数的值 二、抽象类 所有具有相同行为的类的集合,称为抽象类。类中有抽象方法的,就叫抽象类 抽象类采用abstract修饰 规则 1)抽象类可以没有抽象方法,但是有抽
2021-11-23 21:29:01
157
原创 2021.11.22学习记录
一、继承 将一个类的方法和属性完全复制给另一个类,就叫继承,但是继承不继承父类的构造方法 1)使用方法:访问修饰符 class 子类名 extends 父类名 {} 2)protected:保护修饰符,专门用于继承,其修饰的内容只能被继承调用 3)Java中只能单继承,即所有类只能有一个父类 4)被继承的叫父类(超类),继承的叫子类(派生类) 5)父类的私有属性和构造方法不能被继承 6)创建对象时会调用构造方法,但是调用构造方法不一定创建对象(创建子类对象会默认调用父类的构造方法) 7)当.
2021-11-22 21:49:03
37
原创 2021.11.21学习记录
一、代码块 用一对大括号{}包裹的,即为代码块,其中大括号的主要作用是用来限制作用范围 1)普通代码块:写在方法之中的代码块,作用和范围有限 2)构造代码块:写在类之中的代码块,会在创建对象的时候执行。会优于构造方法执行 3)静态代码块:在{}前使用static关键字修饰的代码块,也是在创建对象的时候执行,会优于构造代码块执行,但是只会执行一次 在进行项目的时候,使用的顺序:静态代码块、普通代码块、同步代码块、静态代码块 二、单例设计模式 设计思想: 1)构造方法私有化 2)声明一个本类对
2021-11-21 20:15:59
41
原创 2021.11.20学习记录
一、成员变量与局部变量 成员变量,为定义在类里面,方法之外的变量,也叫全局变量 局部变量,为定义在方法里面的变量,或者定义方法时传入的参数 1)成员变量属于对象,储存在堆内存,局部变量属于方法,储存在栈内存 ...
2021-11-20 22:06:30
157
原创 2021.11.17学习记录
一、面向对象 在java中,最重要的就是面向对象,即一切都用对象进行操作,是面向过程的升级(c语言是面向过程的),对像操作更为简单便捷 类,即具有一类相同属性的事物的集合,是一个抽象的概念 对象是一类事物中具体的事物,是一个实际的个体 1、创建实例化对象的格式: 1)类名 对象名 = new 类名 2)类名 对象名 = null 对象名 = new 类名 释放对象过程: 对象名 = null 2、调用类的属性和方法 对象名.类名() 对象名.属性 二、封装 java有三个特征,.
2021-11-17 21:37:48
298
原创 2021.11.15学习记录
一、二分法算法查找元素 从一个数组中查找目标元素,如果相同,则返回目标值,否则返回-1; 其基本算法思想为:首先保证数组是有序的。取数组的中间元素与目标元素进行比较,如果目标元素大,则从数组的中间元素到最大元素中再选一个中间元素作比较,如果目标元素小,则从数组的中间元素到最小元素中再选一个中间元素作比较,依次类推,直到找到目标或者没有找到,结束算法。 二、Array工具类:数组操作的必备类 该类中的常用方法: 1)二分法: Arrays.binarySearch(int [] a...
2021-11-15 21:52:51
190
原创 2021.11.14学习记录
一、冒泡排序算法 冒泡排序,顾名思义,像冒泡一样进行从小到大的排序,采用的方式为: 两两元素之间进行比较,如图所示: 将下列元素进行冒泡排序 20 5 60 55 32 首先,让第一个元素与第二个进行比较,如果第一个数大于第二个数,则交换,否则不交换 5 20 60 55 32 在让此时的第二个元素与第三个元素进行比较,方式与第一次相同,剩下的依次进 最后,第一轮的结果如下 5 20 55 38 60 然后
2021-11-14 17:50:34
185
原创 2021.11.13学习记录
一、数组的遍历 遍历即依次访问输出,通常,采用for循环进行遍历: int len = 数组.length for(int i = 0 ,i<len,i++){ System.out.println(数组名[i]) } 注:在确定数组的长度时,采用此类方法进行遍历,若不知道,则直接使i = 数组.length; 除此之外,还有第二种方法,即采用forearch进行遍历: for(数组元素类型 变量名 :数组名){ System.out.println(x) } 多学一点:可变参.
2021-11-13 16:59:12
174
原创 2021.11.12学习记录
一、方法 定义:描述程序的一种函数,提高程序的复用性和便利性 表达式: 权限修饰符(谁可以调用)+ 方法修饰符(怎么调用此方法)+返回值类型+方法名+(参数)+{ 程序语块 } 注:static表示为此方法可以直接调用 二、调用方法与参数 当一个方法被写好以后,不会被执行,只有被调用时才会被执行 在方法定义时写入的参数为形式参数,此时的参数没有意义,但是需要声明数值类型 在调用方法时写入的参数为实际参数,其数值类型应与形式参数类型一致 三返回值类型 在定义一个方法时,...
2021-11-12 21:32:45
172
原创 2021.11.11学习记录
一、三目运算符 表达式:x?a:b 意思为:x为一个判断条件,如果满足,则返回a的值,否则返回b的值 注:此运算可以用if else循环表达,反之则不行 二、优先级运算符 优先级运算符,只需要记住最高级运算为()和[],其余的可以通过查表 三、if else语句 表达式为: if(判断条件){ 执行语句 }else if{ 执行语句 }else{ 执行语句 },其中判断条件为必写内容 四、switch语句 表达式为:switch(返回值类型){ cash 常量...
2021-11-11 21:39:09
371
原创 2021.11.10学习记录
一、运算符 在进行运算时,从左到右依次进行计算,如 a+=b,其结果为 a= a+b, 前自增与后自增的区别: a = b++,其结果为先把b的值赋值给a,在让b自增, a = ++b,其结果为先让b自增,在赋值给a 二、逻辑运算符号: 1、&(与)运算:当两个值同时为真时,结果才为真,否则为假 2、|(或)运算:只有两个值同时为假时才为假,其余都真 3、!(非)运算:取相反值 4、^(异或)运算:两个值相同为假,不同为真 三、键盘输入方法的使用...
2021-11-10 20:02:48
194
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人