12 2021 档案
摘要:一、底层原理 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)什么是静态变量? 类变量也叫静态变量,静态属性,为该类所有对象共享的变
阅读全文
摘要:一、包 1、三个作用 区分相同名字的类 当类很多时,可以很好地管理 控制访问范围 2、基本语法 package 包名; (1)包的本质是创建不同的文件夹来保存类文件 (2)包的创建:new——》package——》com.包名 (3)包的命名:只能包含数字,字母,下划线,小圆点,不能以数字开头,不能
阅读全文
摘要:public class Maze { public static void main(String[] args) { //创建地图 int map[][] = new int[8][7]; for(int i = 0; i < 7; ++i) { map[0][i] = 1; map[7][i]
阅读全文
摘要:一、类与对象 1、概述 为什么需要类与对象? 对某些问题,,单独地定义变量解决,或者使用数组来解决,会不利于数据的管理,且效率低下,由此,Java设计者引入类与对象(OOP),其根本原因在于现有技术不能完美解决新的需求 什么是类与对象? <对象>:现实世界中,随处可见的一种事物就是对象,对象是事物存
阅读全文
摘要:一、数组 1、为什么需要数组? 为了解决大量同类型数据的存储和使用问题 为了模拟现实世界,更有效地管理和处理数据 2、数组的使用 (1)概念:为一组数据,用于存放多个数据类型的数据 (2)数组的初始化 动态初始化: 数据类型[] 数组名 = new 数据类型[大小]; 静态初始化: 数据类型[] 数
阅读全文
摘要:一、标识符命名规则 概念:Java对各种变量、方法和类等命名时使用的字符序列称为标识符 由26个英文字母大小写、0-9、或下划线_ 以及$组成 数字不可以开头 不可以使用但可以包含有关键字和保留字 严格区分大小写,长度无限制 不能包含空格 二、标识符命名规范 包名:多单词组成时,所有字母都小写——a
阅读全文
摘要:一、流程控制 流程控制决定程序是如何运行的,主要有三大流程控制语句 顺序控制 分支控制 循环控制 二、顺序控制 程序从上至下依次执行 三、分支控制 1、条件语句 (1)单分支 格式: if (条件表达式) { 执行代码块; } 功能:如表达式为true,则执行语句 (2)双分支 格式 if (条件表
阅读全文
摘要:运算符是一种特殊符号,用以表示数据的运算,赋值,比较等 一、算术运算符(二元运算符) 符号 意义 + 正号 - 负号 + 加号 - 减号 * 乘 / 除(取除数):1/2 = 0; 1.0/2 = 0.5; % 取余(取模):其本质是a%b = a - a/b*b 二、自增、自减运算符 符号 意义
阅读全文
摘要:一、Java语言发展史 Java语言诞生于1995年 Java之父James gosling,sun(太阳微电子公司)为占领智能电子消费产品市场开发 1996年:JDK1.0诞生、 什么是JDK? Java开发工具包 Java包括三大块 JavaSE(Java标准版)——Java基础 JavaEE(
阅读全文
摘要:一、变量概述 1、为什么需要变量 变量是程序的基本组成单位 变量三要素:类型+名称+值 2、变量的概念 变量相当于内存中的一个数据存储空间 步骤: 声明变量 int a; 赋值 a = 1; 二、数据类型 在Java中每种数据都定义了明确的数据类型 1、整数型(int) (1)Java各整数类型有固
阅读全文
摘要:一、学习准备 1、学习方法 一个合格的程序员应该具备的能力 指法速度(敲代码的速度) 键盘的手势要正确,左手:asdf,右手:jkl; 坚持盲打,直到肌肉记忆 编程思想(能够用编程思路去解决现实生活中的问题) 所谓思想即思路,解决问题的思路 不要照抄代码,抄代码是没有灵魂的!!! 结论验证法 务必做
阅读全文
摘要:一、DOS命令 1、如何操作DOS命令 (初学者建议在虚拟机中完成实验) 开始——运行——输入cmd——回车,将调出C:\windows\system32\cmd.exe 或win+R打开运行窗口——输入cmd——回车 2、基本命令 (1)命令:color 参数 帮助:color ? 作
阅读全文
摘要:一、为什么long会向float进行自动类型转换? long l1 = 1;//long型占8个字节 float f1 = l1;//float占4个字节 System.out.println(f1);//输出:1.0,说明long可以向float进行自动类型转换,其原因在于float类型能表示的数
阅读全文
摘要:选择类 Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本。 Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑。举个栗子:快速选中并更改所有相同的变量名、函数名等。 Ctrl+L 选中整行,继续操作则继续选择下一行,效果和 Shift+↓ 效果一样。 Ctr
阅读全文