![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
文章平均质量分 89
αβγθ
这个作者很懒,什么都没留下…
展开
-
Java高级学习-注解与反射
文章目录注解内置注解元注解自定义元注解反射获取反射对象Class类型获取Class类拥有Class对象类加载内存分析类初始化类的主动引用(一定发生类的初始化)类的被动引用(不会发生类的初始化)类加载器获取运行时类的对象动态创建对象执行方法通过构造器创建对象(实例化对象):通过反射获取一个方法通过反射操作属性通过反射操作泛型通过反射操作注解获取注解的value的值获取类指定的注解注解java.Annotation对程序作出解释,可以被其他程序读取,有检测的作用格式:@注释名,也可以添加一些参数值内置原创 2021-04-09 10:02:56 · 475 阅读 · 1 评论 -
Java高级学习-Stream+方法引用
文章目录Stream流获取流方法forEach过滤filterStream特点map统计个数count取前几个limit跳过前几个skip组合concat方法引用通过对象名引用成员方法通过类名引用静态成员方法通过super引用父类成员方法通过this引用成员方法类的构造器引用数组的构造器引用Stream流优化集合循环遍历,关注的时做什么 ,而不是怎么做思想:类似生产线filter,map,skip都在在对函数模型进行操作,集合元素没有真正被处理,当终结方法count执行的时候,这个模型才会按照指定原创 2021-04-09 10:00:30 · 539 阅读 · 1 评论 -
Java高级学习-函数式接口
函数式接口:有且仅有一个抽象方法的接口函数式编程:Lambda,函数式接口就是适用于Lambda使用的接口语法糖:更加方便,但是原理不变的代码语法,for-each–底层式迭代器。为了确保是函数式接口,使用注解:@FunctionalInterface使用:一般作为方法的参数和返回值类型。方法的参数是一个接口,可以传递接口的实现类对象void show( MInterface in ){ }show(new MyInterfaceImpl() );方法的参数是一个接口,可以传递接口的匿原创 2021-04-09 09:58:45 · 571 阅读 · 0 评论 -
Java高级学习-网络
文章目录TCP3次握手SocketServerSocketB/S-浏览器/服务器结构TCP:传输控制协议(Transmission Control Protocol)UDP:用户数据包协议(User Datagram Protocol)IP地址(Internet Protocol Address)端口号:逻辑端口,分配随机端口号,由两个字节组成,0-65535之间,80端口:网络端口3306:mysql1521:oracle8080:TomcatTCP数据交互,严格区分客户端(C原创 2021-04-09 09:58:04 · 372 阅读 · 0 评论 -
Java高级学习-IO(2)
缓冲流是对基本流对象的一种增强,通过缓冲区数组读写,减少系统IO次数,提高读写效率字节缓冲流字节缓冲输出流BufferedOutputStream extends OutputStream继承父类成员方法构造方法:BufferedOutputStream ( OutputStream out ) 创建一个新的缓冲输出流,以将数据写入指定的底层输出流BufferedOutputStream ( OutputStream out , int size ) 创建一个新的缓冲输出流,将原创 2021-04-03 09:52:09 · 357 阅读 · 0 评论 -
Java高级学习-IO(1)
IOinput—硬盘—output流:数据(字符,字节)1字符=2字节 1字节=8bit 二进制字节流字节输出流OutputStream:是表示字节输出流的所有类的超类public abstract class OutputStream //抽象方法是不能直接调用成员方法:close:关闭输出流,释放相关系统资源flush:刷新输出流,强制任何缓冲的输出字节被写出write(byte[] b):将b.length字节写入到此输出流write(byte[] b, int off, i原创 2021-04-03 09:51:35 · 339 阅读 · 0 评论 -
Java高级学习-File类
文章目录构造方法方法判断功能创建删除目录遍历递归文件过滤器java.io.File类,对文件和文件夹进行操作。directory:文件夹/目录;path:路径pathSeparator 与系统相关的路径分隔符 pathSeparatorChar win:; linux::separator 与系统相关默认名称分隔符 separatorChar win:\ linux:/绝对路径:一个完整路径相对路径:一个简化路径,当前项目的根目录注意:路径不区分大小写,\是转移字符,\代原创 2021-04-03 09:50:03 · 354 阅读 · 0 评论 -
Java高级学习-线程池和Lambda表达式
线程池线程通信,避免多线程对同一共享变量的争夺。等待与唤醒机制,wait – notifywait-- notify 必须由同一个锁对象调用wait-- notify 属于Object类的方法wait-- notify 必须要在同步代码块或者同步函数中使用生产者和消费者等待与唤醒机制线程池线程复用,让线程完成任务之后再继续进行其他任务。线程池:容器—>集合(ArrayList,HashSet,LinkedList,HashMap)创建多个线程时,保存到一个集合中,使用线程时候,将原创 2021-04-01 19:32:56 · 405 阅读 · 1 评论 -
Java高级学习-异常和线程
异常异常的超类java.lang.ThrowableThrowable:包括Error和ExceptionException:编译期异常,包括:RuntimeException:运行期异常异常产生过程JVM检测程序出现异常:JVM会根据异常产生的原因创建一个异常对象,这个异常对象包括异常产生的(内容,原因,位置);在getElement方法中,没有异常处理逻辑{ try…catch},那么JVM会把异常对象抛给方法的调用者main方法来处理这个异常;main方法里也没有异常逻辑,继续把对象原创 2021-04-01 19:29:12 · 347 阅读 · 0 评论 -
Java高级学习-Map
MapMap< K ,V>,将键映射到值,每一个键映射一个值。双列集合key和value数据类型可以不相同key不允许重复,value可以重复HashMapHashTable是单线程的,HashMap是多线程的HashMap< K, V> implements Map< K ,V>Map< K ,V> map = new HashMap<>();1.HashMap集合底层是哈希表,查询快,数组+单向链表/红黑树2.HashMap集原创 2021-04-01 19:27:49 · 385 阅读 · 1 评论 -
Java高级学习-泛型
泛型是一种未知的数据类型 (E) ,也可以看作是一个变量,用来接收数据类型。E e : Element 元素T t : Type 类型创建集合对象的时候,就会确定泛型的数据类型。ArrayList把数据类型作为参数传递,赋给泛型E。创建集合对象不使用泛型,可以存储任意类型数据,不安全,可能会发生异常。使用泛型好处:避免类型转换麻烦将运行期异常,提升到编译器。弊端:泛型是什么类型,只能存储什么类型的数据。泛型的定义不确定使用什么数据类型时,使用泛型。泛型可以接受任意类型的数据,自定原创 2021-04-01 19:25:44 · 380 阅读 · 0 评论 -
Java高级学习-集合
集合是java中提供的一种工具,可以用来存储多个数据,集合重写了toString,可以直接打印集合元素集合与数组的区别:集合长度可变,数组长度固定。数组存储同一种类型元素,存储值或者对象(引用类型),集合只能存储对象,且对象类型可以不一致。集合框架Collection接口:共性方法,没有带索引的方法。List接口:有序的集合,取出元素顺序相同,允许重复元素,有索引。Vector,ArraryList,LinkedListSet接口,不允许存储重复元素,没有索引TreeSet(无序),原创 2021-04-01 19:22:55 · 379 阅读 · 1 评论 -
Java高级学习-Object + API
Objectjava.lang.object 类是根类,超类。所有对象都实现这个类方法。toString()public String toString() : 返回对象类型+ @ + 内存地址值@override public String toString() { return xx}直接打印对象的名字。其实就是调用对象的toString,打印堆内存的地址。**需要进行覆盖重写。直接快捷键生成。**System.out.print(对象名)判断是否重写。equals指示其他对象是否与原创 2021-04-01 19:22:14 · 349 阅读 · 0 评论 -
Java基础学习-类
内部类一个类内部包含另一个类。编译文件格式:xx$内部类名称.class成员内部类修饰符 class 类名称 { 修饰符 class 内部类名称{ }}内用外,随意访问,外用内,需要内部类对象。使用成员内部类间接:通过外部类的读写,调用外部类的方法,里面间接使用内部类方法。直接:类名称 对象名 = new 类名称();外部类名称.内部类名称 对象名 = new 外部类名称().new 内部类名称();内部类调用重名的外部类成员变量,外部类名称原创 2021-03-30 10:47:01 · 311 阅读 · 0 评论 -
Java基础学习-接口多态
接口接口是一个多个类公共规范。可以作为参数进行传递:方法名(接口名称 参数名){ }接口是一个引用数据类型,最重要的内容就是其中的:抽象方法定义接口:public interface 接口名称{ }接口包含有:常量,抽象方法,默认方法,静态方法,私有方法抽象方法定义抽象方法:public abstract 返回值类型 方法名称(参数类型);接口中的抽象方法,修饰符必须是两个固定的关键字,可以选择性地省略。接口不能直接使用,必须有一个实现类/匿名内部类来实现,创建实现类的对象,进行使用原创 2021-03-30 10:45:55 · 417 阅读 · 0 评论 -
Java基础学习-面向对象
Day02面向对象面向过程:实现一个功能,详细处理每一个细节面写对象:实现一个功能,不关心步骤三个特征:封装,继承和多态类:一组相关属性和行为的集合。属性:成员变量,在方法外,类内行为:main类中的成员方法,不写static关键字,main中的可以写类是抽象的,对象是具体的。类是对象的模板。对象是类的实体。实例化–创建导包:import 包名称.类名称;创建格式:类名 对象名 = new 类名();使用成员变量:对象名.成员变量名使用成员方法:对象名.成员方法名();创建方原创 2021-03-24 16:28:20 · 357 阅读 · 0 评论 -
Java基础学习-基础知识
Day01IDEA快捷键main方法的快捷键:输入psvm输出语句的快捷键:输入sout多行注释 ctrl + shift + /导包 : Alt + Enter自动生成代码:Alt + Ins (set/get)补全 : Alt + / 自己设置的for 循环 10.fori ---- 调用10次循环数组名称.fori --遍历数组数组名称.forr --倒序遍历数组对象名.方法名().var – 补全当前返回语句shift + F6 选同时引用的变量原创 2021-03-24 16:26:07 · 379 阅读 · 0 评论