![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
小杨与bug的斗争
这个作者很懒,什么都没留下…
展开
-
集合之LinkedList、Vector
基本概念LinkedList底层:双向链表(链接列表) 。物理上不连续 而逻辑上连续的存储空间ArrayList与LinkedList在数据存储上的区别?① ArrayList底层是一个大小可变的数组,增删速度比LinkedList要慢。但是 查询速度快。② LinkedList底层是一个双向链表,增删速度比ArrayList快,但是查询速度慢。查询的时候可以理解为先要做个索引Vect...原创 2019-12-22 19:14:26 · 73 阅读 · 0 评论 -
集合删除元素之并发修改异常
什么是并发修改异常?ConcurrentModificationException异常是一个RuntimeException,并发访问容器出错时抛出集合元素删除方式 :① 集合 : remove(obj/index)② 迭代器: remove()注意: 当在遍历时,使用集合的删除方法,可能会导致ConcurrentModificationException 并发修改异常。建议用迭代器的...原创 2019-12-22 18:58:38 · 170 阅读 · 0 评论 -
集合之ArrayList
基本概念1.Arraylist:① 底层 : 实现了List接口,大小可变的数组物理上连续 逻辑上也连续的存储空间。② 特点: 有序 可重复。③ 构造方法:ArrayList() 创建初始容量为10的空列表。ArrayList(Collection<? extends E> c)***2.遍历方式 :1》 数组2》Iterator 迭代器3》ListIte...原创 2019-12-22 18:09:06 · 227 阅读 · 0 评论 -
集合概述
文章目录基本概念集合的分类单列集合双列集合集合对象的创建集合常用的方法集合对象的遍历形式集合的泛型List接口基本概念什么是集合?数组:存储相同数据类型的容器,存在添加、删除、修改的方法个人总结来讲:集合是存放数据的容器,存放对象引用的容器,功能上同数组相同,但是操作比数组简便集合与数组区别?集合能够存放对象引用,而数组不能,集合比数组操作简便集合的分类单列集合什么是单列集合?...原创 2019-12-22 15:09:50 · 135 阅读 · 0 评论 -
String、StringBuffer以及StringBuilder的各自优缺点及区别
文章目录String类字符串缓冲区String与StringBuffer的区别为什么StringBuffer线程安全效率低,而StringBuilder线程不安全效率高String类String类代表字符串,字符串是一个常量,值创建后不能改变,底层是一个字符数组final的出现就是为了为了不想改变,而不想改变的理由有两点:设计(安全)或者效率。final 修饰的类是不被能继承的,所以 fi...原创 2019-12-22 14:31:37 · 472 阅读 · 0 评论 -
Object类
文章目录基本概述object类的equals方法重写equals方法为什么要重写hashcode方法equals 与== 的区别与联系基本概述1.Object : 是类层次结构的根类,所有的类都显式或隐式的继承了该类。包括数组都是该类的子类。2.常用方法:① getClass() 返回调用该方法的对象运行时类。② hashCode() 返回对象的哈希码值 。实质是由对象的内存地址经过哈希...原创 2019-12-21 22:09:04 · 85 阅读 · 0 评论 -
内部类
文章目录基本概述成员内部类:一般成员内部类成员内部类:静态成员内部类成员内部类:私有成员内部类局部内部类:匿名内部类基本概述什么是内部类?内部类即类中的类都有哪些内部类?class AA{ class 一般内部类{ } static class 静态内部类{ } private class 私有内部类{ } public void fun() { c...原创 2019-12-21 21:30:46 · 195 阅读 · 0 评论 -
向上转型和向下转型
向上转型,从右往左看 子类对象–>父类引用向下转型 从右往左看 父类引用–>子类对象 父类引用必须是要向下转的类如果父类引用不是要向下转的类,就会报向下转换异常解决办法:instanceof 先进行判断在进行类型转换public class 向下转型 { public static void main(String[] args) { //向上转型,从右往左...原创 2019-12-20 19:40:33 · 89 阅读 · 0 评论 -
反射
文章目录基本概念Class类的创建属性的获取反射的常用方法其它方法基本概念什么是反射? java反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。反射机制的实现实质:ClassClass类的创建Class类的实例表示正在运行java应用程序...原创 2019-12-20 18:59:24 · 93 阅读 · 1 评论 -
多态
什么是多态? 有一个动物类,和几个小动物猫、狗、乌龟。动物类里有个吃东西的方法,猫,狗,乌龟都继承动物类,重写了吃东西这个方法,根据猫,狗,乌龟都属于动物类,但是都有各自吃东西的方法,这个情况就叫做多态 概念:由于传递的实质的对象的不同,同一个方法展现出不同的状态。 多态产生的前提:1、必须具有继承关系 2、在子类中必须有方法的重写 多态的好处:提高了代码的扩展性多态的分类:...原创 2019-12-19 22:02:48 · 119 阅读 · 0 评论 -
TCP简单模拟聊天室、文件上传
文章目录基本概述简单模拟聊天室带缓冲区的聊天室整理版TCP与UDP的区别文件上传(文件传输)基本概述什么是TCP? 传输控制协议,面向连接的、可靠的、基于字节流的传输层通信协议TCP通信原理 客户端和服务器通信 客户端向服务器发送消息:询问是否收到 服务器回复客户端:我收到了,你收到了吗 客户端回复服务器:我也收到了就像两个人打电话,至少需要3句话,才能确定两个人都能收...原创 2019-12-19 21:01:40 · 95 阅读 · 0 评论 -
UDP、数据报包、简单聊天室
什么是UDP? User Datagram Protocol,用户数据报包协议,将数据打包成数据报的形式进行传输,无连接特点:面向无连接的,通过数据报包进行传输,每个数据报包的大小不能超过64k,传输速度快,实时性java提供的UDP类DatagramSocket 发送端和接收端DatagramPacket 数据报包文章目录简单实现单次收发实现循环模拟聊天室简单实现单次收发发送...原创 2019-12-19 20:14:55 · 91 阅读 · 0 评论 -
什么是枚举?
什么是枚举? 枚举:列举出 有穷序列集使用枚举类的情况: 由于某些类的对象是有限个,不能是无限个,这时候我们就需要用到枚举类枚举类的书写格式: 1、关键字enum表示该类是一个枚举类 2、该类的第一行写对象的名称,多个逗号之间用逗号隔开,最后用分号结束该语句。 3、其他的类的成员都放在对象的下面 4、构造器默认使用private修饰,且只能使用private修饰...原创 2019-12-18 20:46:24 · 170 阅读 · 1 评论 -
死锁
什么是死锁? 加了同步的多线程,当多个线程共同访问互斥资源(多个共享资源,但是访问顺序相反)时,由于访问顺序相反,导致程序锁死的现象。public class DeadLock死锁 { public static void main(String[] args) { AThread a=new AThread(); AThread a1=new AThread(); a.f...原创 2019-12-17 21:28:41 · 204 阅读 · 0 评论 -
线程安全问题
基本概念什么是线程? 线程是进程中不同的执行路径什么是进程? 正在执行的程序,进程会开辟内存空间什么是程序? 静止在计算机上的代码段。就是软件,指令和数据的集合。多线程:多条不同的执行路径。线程对象的创建方式: 1、通过继承的形式,创建线程对象 2、通过实现的形式,创建线程对象多线程安全问题多线程产生安全问题的原因:多个线程共同操作共享数据。 当多个线程共同操...原创 2019-12-17 13:37:30 · 166 阅读 · 0 评论 -
子父类之间静态、构造方法、构造代码块的顺序问题
静态随着类的加载而加载,并且只加载一次。而构造代码块优先于构造方法执行,调用任意一个构造方法,都会执行构造代码块。父类优先于子类加载执行顺序 类的加载: 1、父类的静态成员 2、子类的静态成员 对象的创建: 子类构造方法中的代码执行之前,需要先执行: 1、super() 2、构造代码块 3、属性显式初始化 4、...原创 2019-12-16 20:25:27 · 160 阅读 · 0 评论 -
java基础阶段学生信息管理系统集合版
基于集合的小案例,没有涉及到IO流,没有异常处理,只是简单的用集合存储数据元素,实现CRUD。package/* * 学号默认生成,在学生类中创建一个静态常量,用来给每个学生的学号赋值,每次赋值后,执行++一次 */import java.util.ArrayList;import java.util.ListIterator;import java.util.Scanner;...原创 2019-12-16 18:41:30 · 128 阅读 · 0 评论 -
java基础阶段学生管理系统进阶版
拆分代码,封装工具类,降低了代码的耦合度文章目录实体类的创建封装工具类Dao层功能模块添加学生信息查询学生信息修改学生信息删除学生信息实体类的创建Students 类实现序列化流,重写toString、hashcode、equals方法class Students implements Serializable{ /** * */ private static final ...原创 2019-12-16 18:35:00 · 141 阅读 · 0 评论 -
java基础阶段学生信息管理系统
最近在学java基础,做了一些题目,还有很多不足,但会慢慢改进的。使用IO流、集合等知识的小案例实现功能:添加学生信息,删除学生信息,修改学生信息,查询学生信息,退出系统缺点:每次运行后必须要先添加学生,可以读取文件中的信息,但是修改学生信息报异常,原因在于修改学生的分支语句里存储信息的文件采用new File()的方法使用到的流:序列化流与反序列化流、输入输出流关闭流:jdk1.7后t...原创 2019-12-15 20:36:12 · 150 阅读 · 0 评论 -
异常 输入 无限循环
当输入的n不为数字时,比如a,会出现如图所示的无限循环原因: 当输入的为a时,会catchInputMismatchException输入不匹配异常输入为a,sc的值与n的类型不匹配不能赋值给n,执行输入不匹配异常,a仍存在在sc空间中,当进行下次循环时,仍然会报输入匹配异常解决办法:在catch (InputMismatchException e){}里new一个sc对象...原创 2019-12-10 22:12:15 · 185 阅读 · 0 评论