
JavaSE
文章平均质量分 84
搭环境,学Java基础知识;查API
荼酒
分享自己的编程学习和经验
展开
-
01软件开发基础、Java开发环境搭建、编写第一个Java程序
什么是JavaEE:接收到客户端的请求,并通过响应返回给客户端数据的技术 常有的开发语言写Java代码工具:JDK(Java开发工具包)环境:JRE(Java运行时环境)软件基础,初步学习有一定的认知搭建环境(JDK、JRE、环境变量)编写Java代码(工作空间的概念,写代码,编译运行的过程)编写第一个Java程序代码 笔记 学习经验原创 2024-02-25 17:00:29 · 949 阅读 · 0 评论 -
02Hello程序的扩展、Java编码规范、Path的作用、Java、编写代码的工具、编码问题、关键字、标识符、变量、基本数据类型及转型
学会md文档的编写Hello的细节Java编码规范IDE及编码问题关键字、标识符 --重点变量 – 重点基本数据类型(使用、深入) – 重点基本数据类型的转型notenotepa++安装与使用学习资料见文章绑定资源。原创 2024-02-25 18:22:09 · 813 阅读 · 0 评论 -
03运算符【算术、赋值、关系】、Scanner
1.运算符(理解、使用、特殊点、经典面试题)算术运算符:+、-、、/、%、++、–赋值运算符:=、+=、-=、=、/=、%=关系运算符:==、!2.Scanner – 重要3. 学习资料见文章绑定资源。原创 2024-02-26 14:56:13 · 383 阅读 · 0 评论 -
04运算符【逻辑、三目、位】、运算符优先级、字符串拼接符
1.逻辑运算符 – 结果都是boolean类型2.字符串拼接符3.三目运算符 – 注意:返回值规则、需求、面试题4.位运算符 – 注意:理解运算过程。原创 2024-02-26 15:15:52 · 1980 阅读 · 0 评论 -
05位运算符的面试题、转义字符、常量、Java的执行语句【顺序、分支、循环、特殊的流程控制】、深入乱码、字节码文件解析
1.转义字符:具有特殊意义的字符本身2.常量:程序在执行过程中不可发生改变的量2.1 数字字面量2.2 字面值常量2.3 final修饰的变量扩展:驼峰命名法3.分支语句3.1 if分支3.2 switch分支(注重底层)3.3 if vs switch(表达式的区别、应用场景的区别)4.for循环4.1 使用4.2 for循环嵌套。原创 2024-02-26 15:43:00 · 1344 阅读 · 1 评论 -
06Java的执行语句【while、do-while,break】
1.for循环嵌套 – 重要!!!2.while和do-while4.特殊的流程控制语句 – break。原创 2024-02-27 16:29:42 · 772 阅读 · 0 评论 -
07Java的执行语句【continue、return、label】、方法【参数、返回值】
1.特殊的流程控制语句continuereturnlabel – 面试题2.方法概念分类(如何去理解参数和返回值)无参数无返回值的方法带参数的方法带返回值的方法。转载 2024-02-27 16:30:42 · 529 阅读 · 0 评论 -
08方法的重载【条件】、方法的递归、万年历
1.方法的重载理解条件(记清楚)好处应用场景2.方法的递归概念经验:找规律、找出口递归画图案例(重要):阶乘、不死神兔-斐波拉切数列(黄金分割数列)3.万年历 – 流程、思路4.方法版本的万年历 – 何时封装成方法。转载 2024-02-28 18:46:05 · 493 阅读 · 1 评论 -
09一维数组、内存理解图
一维数组概念数组的声明数组的初始化:静态初始化、动态初始化。转载 2024-02-28 18:47:44 · 691 阅读 · 1 评论 -
10eclipse的安装与使用、一维数组【排序,查找,复制,扩容,删除 】、数组作为【参数,返回值,可变参数】、Arrays工具类、二维数组、五子棋
1.数组的排序和查找 – 了解2.数组的复制、扩容、删除 – 重要3.数组作为参数、返回值4.可变参数 – 重要5.Arrays工具类 – 理解工具类的概念6.二维数组 – 注重理解7.五子棋。原创 2024-02-28 18:51:35 · 758 阅读 · 1 评论 -
Java语言基础、Java的执行语句、方法、数组--回顾概要(day01-10)
注意:字面值常量和final修饰的变量存储在内存-常量池中,并且项目结束才会回收常量池中的数据。ps:public(公有的)、static(静态的)、void(无返回值)含义:给类、变量、方法、接口取名字的时候使用到的字符序列。分类:无参数无返回值的方法、带参数的方法、带返回值的方法。赋值运算符:=、+=、-=、*=、=、%=关系运算符:==、!=、>、>=、<、<=算术运算符:+、-、*、/、%、++、–位运算符:&、|、^、<<、>>、>>>组成:大小写字母 、数字、$、_、中文。转载 2024-02-29 16:23:12 · 290 阅读 · 0 评论 -
11二维数组的练习题、初识面向对象
1.二维数组的练习题 – 二维数组扩容2.根据回顾文档复习 – (1~10day的内容)3.初识面向对象 – 根据面向对象文档开始一系列面向对象知识的学习。原创 2024-02-29 16:25:29 · 1068 阅读 · 0 评论 -
12初识面相对象深入理解、构造方法
1.练习题 – 编写动物园类2.初始面向对象深入理解 class文件只加载一次 每个对象的成员变量独享一份,对象存成员变量 方法要调用时才在栈内存开辟空间3.构造方法 – 重要4.this – 哪个对象调用该方法,该方法中的this就表示该对象。原创 2024-02-29 16:30:48 · 680 阅读 · 0 评论 -
13private、封装、面向对象五子棋、this、分包、static【补充工具类,jar包导出,导出API、eclipse注释快捷键】、类加载机制
1.private关键字 – 私有化修饰属性:属性不能被外界访问修饰方法:方法不能被外界访问2.封装步骤:1.私有化属性2.get/set方法注意:理解封装的概念3.面相对象版本的五子棋a.私有化属性的业务场景b.私有化方法的业务场景c.状态码 – play方法的返回值4.statica.修饰属性b.修饰方法(注重MyArrays,导出Jar包、导入Jar包、导出API)c.静态代码块5.类加载机制(注重加载过程和面试题)原创 2024-03-01 16:36:30 · 745 阅读 · 0 评论 -
14继承【使用及深入、super、重写/复写】
1.继承的使用2.继承的深入 — 重要3.super4.重写。原创 2024-03-01 16:36:44 · 622 阅读 · 0 评论 -
15访问修饰符、Object【方法,使用、equals,getClass,hashCode,toString】、查看equals底层、final
1.访问修饰符 – 一定要去做实验2.Object的概念equalsgetClasshashCodetoString3.Object的使用子类重写equals和toString4.MyString – 重要!!!5.final - 最终的修饰类,类不能被继承修饰方法,方法不能被重写修饰变量,变为常量。原创 2024-03-02 17:26:01 · 968 阅读 · 0 评论 -
16抽象类及抽象方法、多态(类,接口)、对象转型(自动,强转)、内部类(成员,静态,接口,局部,匿名内部类)、eclipse里查看class文件(class反编译可查看底层)
关键字,用来修饰类和方法不能与final,static,private一起修饰,不能被重写1.抽象类及抽象方法2.接口3.思考题:抽象类与接口的区别4.多态 – 重要!!!5.对象转型(向上转型、向下转型)6.内部类(成员内部类,静态内部类,接口内部类,局部内部类,匿名内部类)1.注重使用2.注重局部内部类的面试题3.注重匿名内部类的内存图。原创 2024-03-02 17:26:15 · 929 阅读 · 0 评论 -
17工作中遇到的项目的情况、面向对象简单学生管理系统【需求分析 、项目搭建 、添加功能 、删除功能】
学生管理系统1.需求分析2.项目搭建3.添加功能4.删除功能思考题:删除功能可以省略第一步吗??提升题:考虑如何实现查询功能。原创 2024-03-03 15:38:52 · 882 阅读 · 0 评论 -
18简单学生管理系统【查询功能、修改功能】、包装类
1.学生管理系统 – 删除的思考题2.学生管理系统 – 查询功能3.包装类概念出现原因手动装箱、手动拆箱自动装箱、自动拆行深入Integer的底层原理 – 重要!!!!4.学生管理系统 – 修改功能。原创 2024-03-03 15:39:31 · 949 阅读 · 0 评论 -
19常用类(包装类、字符串相关类、正则表达式( PM)、日期时间类、Math类、 Random类、System类、Runtime类、大数值运算类( BigInteger,BigDecemal))
java常用类.docjava常用类总结:1.包装类(day18)注意:1.装箱、拆箱2.Integer的底层原理2.字符串的类注意:字符串类的深入3.正则表达式 - 了解4.日期时间类5.Math注意:静态导入的概念6.Random注意:种子数7.System注意:理解System.out和System.err多线程抢资源8.Runtime9.大数值运算类。原创 2024-03-04 15:24:17 · 1131 阅读 · 0 评论 -
20面向对象知识点--全学习内容
学习过的面向对象内容梳理原创 2024-03-04 15:26:39 · 1178 阅读 · 0 评论 -
21_22枚举使用及深入、枚举案例【对以前写过的学生管理系统中状态码是使用for嵌套,使用枚举进行优化】
枚举(受限制的类)1.引入、概念、语法、本质、特点、优势枚举的方法2.深入 手撕枚举底层源码–重要 switch判断枚举底层源码–枚举编号从0开始,个数编号从1开始;底层会创建一个枚举个数的数组 – ai[1,2,3,4] switch判断String底层源码–先判断hash值,然后再判断两个字符串是否相同(equals)【字符串哈希值可能相同】3.枚举案例:状态机、错误码、组织枚举、策略枚举–难点4.枚举工具类 - EnumSet 和 EnumMap(集合学完后再进行)原创 2024-03-05 17:24:34 · 1239 阅读 · 0 评论 -
22_23集合【Collection家族(list,set)、泛型、迭代器及其底层原理*、比较器接口】
1.集合2.泛型3.手撕迭代器底层4.Collection家族(1)List接口和ArrayList使用一致栈模式、队列模式Vector:和ArrayList的数据结构一致(一维数组),但是Vector是线程安全的(加锁)Vector有老的方法Stack:Vector的子类栈模式(2)Set接口HashSet:数据结构:一维数组+单向链表特点:无序+去重注意:理解为什么无序,为什么去重数据结构:一维数组+单向链表+双向链表特点:有序+去重。原创 2024-03-06 18:21:50 · 1328 阅读 · 0 评论 -
24Collection(TreeSet)、内置比较器:Comparable - compareTo()、 外置比较器:Comparator - compare()、Map(Hash)
1.TreeSet使用特点(TreeSet的排序规则是怎样实现的 – 思想)内置比较器外置比较器2.HashMap使用、注意事项、面试题、特点。原创 2024-03-07 23:19:08 · 527 阅读 · 0 评论 -
25Map(LinkedHashMap、Hashtable、ConcurrentHashMap、TreeMap)、内置比较器、外置比较器、Properties、Collections
存入null键:应用场景:HashMap:无序 + 去重LinkedHashMap:有序+去重Hashtable:无序 + 去重 + 线程安全(方法里加锁,效率低,已弃用)ConcurrentHashMap:无序+去重+线程安全(局部加锁+CAS,效率高,推荐使用)5.TreeMap(内置比较器、外置比较器;比较器接口day24介绍全)6.Properties – 配置文件类7.Collections – 集合的工具类。原创 2024-03-08 14:33:33 · 820 阅读 · 0 评论 -
26_1集合实现类研究底层(部分):手撕ArrayList底层源码、手撕LinkedList底层源码、手写单向链表和双向链表
手撕实现类1.手撕ArrayList底层源码2.手撕LinkedList底层源码ArrayList 和 LinkedList的效率区别手写单向链表手写双向链表。原创 2024-03-09 22:34:31 · 839 阅读 · 0 评论 -
26_2集合实现类研究底层(部分):手撕Vector、Stack、HashSet、TreeSet底层源码,涉及红黑树
3.手撕Vector底层源码扩容机制4.手撕Stack底层源码5.手撕HasSet底层源码 – 了解底层由HashMap实现6.手撕TreeSet底层源码底层由TreeMap实现重点关注构造方法7.手撕TreeMap底层源码理解红黑树添加元素的过程。原创 2024-03-10 19:09:28 · 889 阅读 · 0 评论 -
红黑树画图理解
红黑树红黑树(Red Black Tree) 是一种自平衡, 即一种特化的AVL树(与平衡二叉树不同的是,红黑树是弱平衡二叉树,即它的左右子树高度差有可能大于1,但不超过一倍。平衡二叉树:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树节点的平衡因子,它指的是该节点的两个子树,即左子树和右子树的高度差,即用左子树的高度减去右子树的高度,如果该节点的某个子树不存在,则该子树的高度为0,如果高度差的绝对值超过1就要根据情况进行调整。二叉树。原创 2024-03-11 23:13:53 · 553 阅读 · 0 评论 -
27手撕HashMap底层源码 (JDK1.7版本的HashMap)
手撕HashMap底层源码JDK1.7版本的HashMap,切换版本原因:jdk1.7和jdk1.8的HashMap不同(头插法/尾插法)HashMap理解图init();的作用;面试题原创 2024-03-14 23:39:53 · 502 阅读 · 0 评论 -
28_1手撕HashMap底层源码
注重面试题原创 2024-03-16 21:04:24 · 754 阅读 · 0 评论 -
28_2异常机制
2.异常异常的概念异常的分类异常处理机制 – 面试题异常处理的能力:1.try…catch…2.throws3.throw原创 2024-03-17 16:28:32 · 1441 阅读 · 0 评论 -
28_3多线程【线程与进程、线程的优先级别、自定义名称、休眠】
3.多线程进程的概念线程的概念创建线程的方式(线程类、任务类)线程的优先级别给线程命名线程的休眠原创 2024-03-18 20:35:44 · 1047 阅读 · 0 评论 -
29多线程【线程的礼让、合并、中断、守护线程、局部变量共享、线程生命周期】
1.线程的礼让 – yield2.线程的合并 – join3.线程的中断4.守护线程5.线程局部变量共享 – 重要理解ThreadLocal底层原理6.线程生命周期 — 重要线程生命周期图原创 2024-03-20 18:04:08 · 1077 阅读 · 0 评论 -
30多线程合并练习题,线程安全(售票任务引入)
1.练习1线程合并(线程类、任务类)2.买票的案例 – 线程安全 (重要)3.理解对象内存结构原创 2024-03-25 17:41:45 · 1184 阅读 · 1 评论 -
31_1线程安全(买票案例):加锁方式(synchronized、Lock锁)【同步代码块、同步方法】
1.线程安全 — 买票案例synchronized代码块synchronized方法(成员同步方法、静态同步方法)Lock锁注意:1.加锁的方式2.锁对象(多个线程去操作同一把锁才能互斥住)原创 2024-03-26 18:33:11 · 1386 阅读 · 0 评论 -
31_2线程安全 【单例模式:懒汉式、饿汉式、枚举饿汉式、双重检测单例模式(volatile)】、ArrayList、死锁、可重入锁
2.线程安全 — 单例模式懒汉式饿汉式枚举饿汉式双重检测单例模式 — (项目中使用,注意volatile的含义)3.线程安全 — ArrayListVector — synchronizedCollections.synchronizedList() — synchronizedCopyOnWriteArrayList — Lock4.可重入锁5.死锁原创 2024-03-27 10:08:45 · 738 阅读 · 0 评论 -
31_3生产者消费者模型、仓储模型
6.生产者消费者模型 – wait()/notify()/notifyAll()7.仓储模型 – wait()/notify()/notifyAll()原创 2024-03-28 15:28:50 · 921 阅读 · 0 评论 -
32Java自带的线程池及调用、ThreadPoolExecutor类(线程池的7大参数)、任务队列及底层原理
1.Java自带的线程池单个线程的线程池指定线程个数的线程池可缓存的线程池延迟任务的线程池2.线程池的7大参数核心线程数最大线程数任务队列(有界、无界、同步、优先队列)拒绝策略闲置时间时间单位线程工厂3.线程池的调用步骤(核心线程、任务队列、普通线程、拒绝策略)4.任务队列及底层原理(有界、无界、同步、优先队列)原创 2024-03-29 23:47:52 · 1469 阅读 · 0 评论 -
33自定义线程池【线程工厂、拒绝策略】、带有返回值的任务类
1.自定义线程池自定义线程工厂自定义拒绝策略2.带有返回值的任务类 --Callable3.File关注文件信息,而非文件内容相对路径和绝对路径的区别原创 2024-03-30 20:16:08 · 1228 阅读 · 0 评论 -
34File类、IO流【字节流】
File类File只关注文件本身的信息 相对路径 和 绝对路径 获取已知文件的信息、创建该文件、输出指定目录下的所有文件信息IO流 对文件里的数据进行操作 字节流。原创 2024-03-31 21:16:02 · 953 阅读 · 0 评论