03 2023 档案
摘要:1.实现多线程 1.1简单了解多线程【理解】 是指从软件或者硬件上实现多个线程并发执行的技术。 具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,提升性能。 1.2并发和并行【理解】 并行:在同一时刻,有多个指令在多个CPU上同时执行。 并发:在同一时刻,有多个指令在单个CPU上交替执
阅读全文
摘要:图书管理系统 本系统采用集合和IO来实现持久化保存 持久化可以暂时先不写, 先自己编写一个控制台版的。 基本业务就是增删改查 思路: 要写最基本的增删改查,需要利用list集合进行操作。ArrayList的泛型设置为Book类型,这个list集合就相当于图书馆。 当时add添加的就是每一个Book对
阅读全文
摘要:网络爬虫,制造假数据 需求:制造假数据也是开发中的一个能力,在各个网络上爬取数据,是其中一个方法。 package com.iolianxi; import java.io.*; import java.net.URL; import java.net.URLConnection; import j
阅读全文
摘要:1. 缓冲流 昨天学习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上铠甲的武士一样,相当于是对基本流对象的一种增强。 1.1 概述
阅读全文
摘要:1. IO概述 1.1 什么是IO 生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了ctrl+s ,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢?键盘、内存、硬盘、外接设备等等。 我们把这种数据的传输,可以看做是一种数据
阅读全文
摘要:JDK1.8新特性 1. Java 8 1.1 生态 Lambda 表达式 函数式接口 方法引用 / 构造器引用 Stream API 接口中的默认方法 / 静态方法 新时间日期 API 其他新特性 1.2 新特性 速度更快 代码更少 强大的 Stream API 便于并行 最大化减少空指针异常 O
阅读全文
摘要:方法引用 1、概述 顾名思义: 方法就是我们之前学习的方法 引用就是把已经有的方法拿过来用,把他当做函数式接口中抽象方法的方法体(引用的方法,可以是Java已经写好的,也可以是一些第三方工具类) 例如:Arrays.sort(arr,比较规则); 我们之前都是在第二个参数里面写匿名内部类或者Lamb
阅读全文
摘要:Java是一门面向对象的编程语言,Java程序运行过程中无时无刻都有对象被创建出来。在语言层面上,创建对象通常(例外:复制、反序列化)仅仅是一个new关键字而已,而在虚拟机中,对象(文中讨论的对象限于普通Java对象,不包括数组和Class对象等)的创建又是怎样一个过程呢?当Java虚拟机遇到一条字
阅读全文
摘要:集合练习题 1、点名器 班级里有N个学生,学生属性:姓名,年龄,性别 实现随机点名器 /** * @author 戒爱学Java * @date 2023/3/21 19:40 */ public class Test1 { public static void main(String[] args
阅读全文
摘要:Stream流练习题 1、数据过滤 定义一个集合,并添加一些整数1,2,3,4,5,6,7,8,9,10 过滤奇数,只留下偶数 并将结果保存起来。 /** * @author 戒爱学Java * @date 2023/3/23 9:32 */ public class Test1 { public
阅读全文
摘要:Stream流 Stream流的作用: 结合了Lambda表达式,简化集合、数组的操作 Stream流的使用步骤以及方法详解: 先得到一条Stream流(流水线),并把数据放上去。 /* 单列集合 */ ArrayList<String> list = new ArrayList<>(); Coll
阅读全文
摘要:HashMap底层源码分析 今天先简单看看HashMap的底层源码,之后做详细的分析以及与其他集合的对比。 1.看源码之前需要了解的一些内容 Node<K,V>[] table 哈希表结构中数组的名字 DEFAULT_INITIAL_CAPACITY: 数组默认长度16 DEFAULT_LOAD_F
阅读全文
摘要:HashSet 简介 HashSet集合继承于Collection集合,Collection集合的常用方法也在HashSet中同样适用。 底层原理:HashSet集合底层采用==哈希表==存储数据,底层是new 了一个HashMap,add方法是利用map.put()方法。 public HashS
阅读全文
摘要:泛型 泛型是JDK5引入的特性,可以在编译阶段约束操作的数据类型,并进行检查。 泛型格式:<数据类型> 注意:泛型只能用引用数据类型 如果不加泛型,那么在添加数据的时候会默认为是Object类,但是多态的弊端是不能访问子类的特有功能,而且进行强转的话也会出问题,如果有一个是Integer,你要强转成
阅读全文
摘要:1. 冒泡排序 冒泡排序:相邻的数两两比较,小的放前面,大的放后面。 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。 它重复的遍历过要排序的数列,一次比较相邻的两个元素,如果他们的顺序错误就把他们交换过来。 这个算法的名字由来是因为越大的元素会经由交换慢慢"浮"到最后面。 当然,大家
阅读全文
摘要:迭代器 什么是迭代器 以下情况是一种比较常见的迭代 for(int i = 0;i < 10; i++){ System.out.println(i); } 这种迭代不具有普适性,因为集合中的set集合是无序、不重复、无索引的。此时的我们就没有利用for循环来进行遍历,像这种情况我们就可以用迭代器的
阅读全文
摘要:CAS算法 今天在看了《Java并发编程的艺术》,学习如何减少上下文切换的时候,里面说到了通过CAS算法来更新数据,而它不需要加锁。不太理解什么是CAS算法,所以在网上搜罗半天资料,看了很久才理解了,给大家整理了一下CAS算法。 1、概述 CAS的全程是:Compare And Swap(比较并交换
阅读全文
摘要:MYSQL 一、MySQL基础 1、数据库相关概念 数据库(DataBase DB) :存储数据的仓库,数据是有组织的进行存储 数据库管理系统(DataBaseManagementSystem DBMS):操纵和管理数据库的大型软件。 SQL:操作关系型数据库的编程语言,定义了一套操作关系型数据库统
阅读全文
摘要:一、题目 N皇后问题要求求解在N*N的棋盘上放置N个皇后, 并使各皇后彼此不受攻击的所有可能的棋盘布局, 皇后彼此不受攻击的约束条件是:任何两个皇后均不能在棋盘上同一行、同一列或者同一对角线上出现。 输入: 给定棋盘的大小n 输出: 输出有多少种放置方法? 二、方法 ==回溯法==: 利用试探性的方
阅读全文
摘要:在介绍斐波那契查找算法之前,我们先介绍一下很它紧密相连并且大家都熟知的一个概念——黄金分割。 黄金比例又称黄金分割,是指事物各部分间一定的数学比例关系,即将整体一分为二,较大部分与较小部分之比等于整体与较大部分之比,其比值约为1:0.618或1.618:1。 0.618被公认为最具有审美意义的比例数
阅读全文