随笔分类 - Java学习
记录以下自己的学习日志
摘要:一、网络基础 1 软件结构 C/S结构:如qq,微信,360 C =》 Client:表示客户端 S =》 Server:表示服务器端 B/S结构:如火狐浏览器,谷歌浏览器,IE B =》 Browser:表示浏览器 S =》 Server:表示服务器端 无论是C/S结构还是B/S结构都离不开网络通
阅读全文
摘要:1、简介 管道 管道就是一系列的聚合操作。【聚合,即指对数据的整理和总结,如最大值,最小值等】 管道包含以下组件: (1)源:可以是集合,数组,生成器函数或I/O通道 (2)零个或多个中间操作:诸如过滤器之类的中间操作产生新的流 (3)终结操作:终端操作(例如forEach)会产生非流结果,例如原始
阅读全文
摘要:1、方法引用 1.1 应用场景 官方文档说明 使用lambda表达式创建匿名方法,有时除了调用现有方法外什么也不做,在这种情况下,通常按名称引用现有方法更容易。 方法引用可以实现此操作,它们是紧凑的,x对于已经具有名称的方法lambda表达式更易于阅读。 即在匿名内部类仅调用一条已经在别的类实现了的
阅读全文
摘要:1 什么是线程? 1.1 几个概念 程序:由程序员编写的代码 进程:指运行中的程序,进程是程序的执行过程,或者是正在运行的程序。是动态过程:产生、存在和消亡的过程 线程:线程由进程创建,是一个实体。一个进程可以由多个线程 打开迅雷——一个进程产生了 迅雷下载多个任务——一个进程产生了多个线程 1.2
阅读全文
摘要:前言 在变量、数组和对象中存储的数据是暂时存在的,程序结束后就会丢失。需要永久地存储程序创建的数据,需要将其保存在磁盘文件中,这样就可以在其他文件中使用该文件。 Java的I/O技术可以将数据保存到文本文件,二进制文件甚至ZIP压缩文件中,以达到永久性存储数据的要求。 1 Java IO流的
阅读全文
摘要:1、为什么使用Lambda表达式 匿名内部类的一个问题是:如果匿名类的实现非常简单,比如仅包含一个方法的接口,则匿名类的语法可能看起来笨拙且不清楚。 在这些情况下,通常试图将功能作为参数传递给另外一种方法,例如,当某人要单击按钮时应采取什么措施。 Lambda表达式可以解决这个问题,即将功能视为方法
阅读全文
摘要:一、hashcode()方法 1、什么是hashcode()方法? public native int hashCode(); hashcode()的返回值是实例对象运行时的内存地址(narive表示该方法为本地方法) 2、hash算法 什么是hash算法:hash(散列),把任意长度的输入,通过散
阅读全文
摘要:一、为什么需要泛型? 1、在完成以下需求时 (1)在ArrayList中添加3个Dog对象 (2)Dog对象包含name, age, 并输出name和age //使用传统方法 ArrayList arrayList = new ArrayList(); arrayList.add(new Dog("
阅读全文
摘要:一、集合概述 1、为什么使用集合 (1)数组的不足 长度开始时必须指定,而且一旦指定不能更改 保存必须为同一类型的元素 使用数组进行增加、删除元素较麻烦 (2)集合的优点 可以动态保存任意多个对象,使用比较方便 提供了一系列方便的操作对象的方法 使用集合添加删除元素简洁 2、集合的框架 二、Coll
阅读全文
摘要:一、包装类(wrapper) 1、为什么需要包装类? Java是一种面向对象语言,Java中的类把方法和数据连接在一起,构成了总包含式处理单元。在Java中不能定义基本类型对象,为了能将基本类型视为对象进行处理,并能连接相关方法,Java为每个基本类型都提供了包装方法。 Java可以直接处理
阅读全文
摘要:一、底层原理 1、哈希算法 哈希算法(也叫散列算法),就是把任意长度值(key)通过哈希算法变换成固定长度的key(地址),通过这个地址进行访问的数据结构 通过把关键码值映射到表中的一个位置来访问记录,以加快查找的速度 具有幂等性,即指的是多次操作,结果是一致的 流程: 算出字符串的ascii码 进
阅读全文
摘要:参考连接:https://zhuanlan.zhihu.com/p/50206657 一、问题 问题:HashSet不允许存放重复的对象,但在重写equals方法但没有重写hashCode方法的前提下,两个对象相等,哈希值不相等 代码: import java.util.HashSet; impor
阅读全文
摘要:一、HashSet概述 (1)HashSet实现Set接口,底层基于HashMap实现,但与HashMap不同在于HashMap存储键值对,HashSet仅存储对象——key (2)HashSet使用成员对象来计算hashcode值 (3)HashSet的特点 无序性 唯一性(允许使用null) 本
阅读全文
摘要:参考文章: https://zhuanlan.zhihu.com/p/95156642 https://blog.csdn.net/woshimaxiao1/article/details/83661464 一、HashMap 1、概述 (1)数据的物理存储结构只有两种 顺序存储 链式存储 栈,队列
阅读全文
摘要:一、LinkedList源码 1、概述 (1)LinkedList底层维护了一个双向链表 (2)LinkedList中维护了两个属性first和last分别指向首节点和尾节点 (3)每个节点(Node对象)里又维护了prev(指向前一节点),next(指向后一节点),item(用于保存数据)三个属性
阅读全文
摘要:一、ArrayList 1、概述 (1)ArrayList是可以动态增长和缩减的索引序列,基于数组实现的List接口 (2)该类封装了一个动态再分配的Object[]数组,每一个类对象都有一个capacity属性,表示封装的Object[]数组的长度,当向ArrayList中添加元素时,该属性值会自
阅读全文
摘要:一、异常(Exception) Java在执行过程中可能会发生不正常的情况,这种非语法和逻辑上的错误,被称为异常。当程序抛出异常,程序就会崩溃,一个不太致命的问题到窒息系统崩溃,程序的健壮性太低,Java提供了异常处理机制来解决该问题,从而保证程序健壮性 1、什么是异常? 在程序中,错误可能
阅读全文
摘要:一、包装类(wrapper) 1、为什么需要包装类? Java是一种面向对象语言,Java中的类把方法和数据连接在一起,构成了总包含式处理单元。在Java中不能定义基本类型对象,为了能将基本类型视为对象进行处理,并能连接相关方法,Java为每个基本类型都提供了包装方法。 Java可以直接处理
阅读全文
摘要:一、枚举(enum) 枚举属于一种特殊的类,里面只包含了一组优先的特定对象 可以取代传统常量的定于方式,即将常量封装在类或接口中 1、枚举的定义 (1)自定义实现枚举 私有化构造器,防止新建对象 提供getXxx方法,对外暴露,但不提供setXxx方法,因为枚举对象值通常为只读 对枚举对象/属性使用
阅读全文
摘要:一、类变量和类方法 独立于对象之外的变量和方法 1、类变量(静态变量) (1)为什么需要静态变量? 在实际开发场景中,处理问题时,会需要两个类在同一内存区域中共享一个数据,或共用一个方法,此时就需要使用到静态变量和静态方法 (2)什么是静态变量? 类变量也叫静态变量,静态属性,为该类所有对象共享的变
阅读全文