随笔分类 - Java学习笔记
摘要:递归解决某些问题 等规模递归的时间复杂度 子问题满足等规模递归的问题都可以用master公式求解时间复杂度 \[T(N) = a \times T(\frac{N}{b}) + O(N^d) \] 其中,N是母问题的数据量,a是子问题的调用次数,b是子问题等规模划分的块数,\(O(N^d)\)是除了
阅读全文
摘要:异或 异或^:无进位相加(同0异1) 0^N = N, N^N=0 交换律、结合律 一串数异或,改顺序不影响结果 交换两个数,不申请额外空间 前提:a和b指向的内存是两块东西,比如在数组中,i位置不能等于j位置,如果i位置等于j位置,这个位置会被洗成0,所以不建议这么换 // a = 甲,b = 乙
阅读全文
摘要:Maven Maven是一款用于管理和构建Java项目的工具,是apache旗下的一个开源项目 Maven作用 Maven概述 Apache Maven是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建 作用:方便的依赖管理 标准的项目构建流程 同一的项
阅读全文
摘要:Vue Vue是一款用于构建用户界面的渐进式的JavaScript框架。 (官网) 框架:就是一套完整的项目解决方案,用于快速构建项目 优点:大大提升前端项目的开发效率 缺点:需要理解记忆框架的使用规则 Vue快速入门 准备: 引入Vue模块(官方提供) 创建Vue程序的应用实例,控制视图的元素 准
阅读全文
摘要:JavaScript JavaScript(简称JS)是一门跨平台、面向对象的脚本语言(就是不用编译直接运行的语言),是用来控制网页行为,实现页面的交互效果 JavaScript和Java时完全不同的语言,不论是概念还是设计。但是基础语法类似 组成 ECMAScript:规定了JS基础语法和新知识,
阅读全文
摘要:Web前端概述 这个笔记是Java后端学习笔记,大部分前端由AI辅助 一个网页由哪几个部分组成?各自的职责 HTML:负责网页的结构 CSS:负责网页的表现 JavaScript:负责网页的行为(动作) 相关文档:MDN,可以直接搜索 VSCode 插件 HTML-CSS 什么是HTML HTML(
阅读全文
摘要:Java高级技术 单元测试 就是针对最小的功能单元:方法,编写测试代码对其正确性测试 我们之前是如何进行单元测试的?有什么问题? 只能在main方法编写测试代码,去调用其他方法进行测试 无法实现自动化测试,一个方法测试失败,可能影响其他方法的测试 无法得到测试的报告,需要程序员自己去观察测试是否成功
阅读全文
摘要:Java网络编程 可以让设备中的程序与网络上其他设备中的程序进行数据交互的技术(实现网络通信) 基本通信架构 基本通信架构有两种形式: CS架构(Client客户端/Service服务端)、BS架构(Browser浏览器/Service服务端) CS架构客户端和服务端都需要程序员开发 BS架构只有服
阅读全文
摘要:多线程 什么是线程? 线程(Thread)是一个程序内部的一条执行流程、 如果程序中只有一条执行流程,那这个程序就是单线程程序 什么是多线程? 多线程是指从软硬件上实现的多条执行流程的技术(多条线程由cpu负责调度执行) 多线程用在哪里? 抢票系统、上传和下载并行...... 创建线程 方法一:实现
阅读全文
摘要:存储&读取数据的方案 File简介 File是java.io.包下的类,File类的对象,用于代表当前操作系统的文件(可以是文件或文件夹) 注意:File类只能对文件本身进行操作,不能读写文件里面存储的数据。 IO流简介 用于读写数据的(可以读写文件或网络中的数据...) File File类的对象
阅读全文
摘要:集合框架p2 Set集合 Set集合是Collection中的另一个分支 Set系列集合的特点:无序:添加数据的顺序和获取出的数据顺序不一致;不重复;无索引 Set系列集合分支 HashSet:无序、不重复、无索引 LinkedHashSet:有序、不重复、无索引 TreeSet:排序(默认一定要大
阅读全文
摘要:集合框架 异常 Java的异常体系 例子: 运行时异常: 索引越界异常 除数为0 调取一个空值的长度 编译时异常: 提醒程序员时间格式可能有误 可以在方法中抛出异常,然后在调用时用try-catch 处理异常 一个代码抛出多个异常可以都抛出,也可以抛出一个Exception,来直接抛出方法内所有异常
阅读全文
摘要:面向对象高级 代码块 代码块是类的五大成分之一(成员变量、构造器、方法、代码块、内部类)。 代码块分两种 静态代码块: 格式 static { } 特点:类加载时自动执行,与类一起优先加载,由于类只会加载一次,所以静态代码块也只会执行一次。 作用:完成类的初始化,例如:对静态变量的初始化赋值。 举例
阅读全文
摘要:面向对象高级 final关键字 认识final关键字 final可以修饰类、方法、变量。 修饰类:该类被称为最终类,特点是不能再被继承了 修饰方法,该方法被称为最终方法,特点是不能被重写了 修饰变量:该变量必须有且仅能被赋值一次 变量有哪些? a. 成员变量: 静态成员变量 实例成员变量 b
阅读全文
摘要:面向对象编程-多态 认识多态 多态是在继承/实现情况下的一种现象,表现为:对象多态,行为多态。 对象多态:不同动物有不同特征 Animal a1 = new Wolf(); Animal a2 = new Tortoise(); 合理性:小范围的可以赋给大范围的 行为多态:乌龟老虎都能跑,但一个人快
阅读全文
摘要:面相对象编程-继承 什么是继承? Java中提供了一个关键字extends,用这个关键字可以让一个类和另一个类建立起父子关系 public class B extends A { } 子类能继承什么? 子类能继承父类的非私有成员(成员变量、成员方法) 继承后对象的创建 子类的对象是由子类、父类共同完
阅读全文
摘要:面向对象编程-封装 对象在计算机中是什么样的 类的基本语法 构造器 创建对象时,对象会自动调用构造器 public class Constru { int a; // 无参构造器 public Constru(){ a=10; } // 有参构造器 public Constru(int a){ th
阅读全文
摘要:数组 一维数组定义方式 方式1:静态初始化数组 方法2:动态初始化数组[长度] 数据类型[] 数组名 = new 数据类型 二维数组定义方式 方式1:静态初始化数组 方法2:动态初始化数组[长度]
阅读全文
摘要:程序流程控制 程序的三种执行顺序 顺序结构 分支结构 循环结构 分支结构 if // if(条件表达式){ 代码; } // if(条件表达式){ 代码1; } else{ 代码2; } // if(条件表达式1){ 代码1; } else if(条件表达式2){ 代码2; } else if(条件
阅读全文
摘要:Java基础语法 注释 // 单行注释 /* 多行注释 */ /** * 文档注释,通常用在类和方法上方 */ .class文件可以双击进行反编译 字面量 二进制 ASCII字符代码表 八进制、十六进制 八进制必须以0开头 十六进制必须以0x开头 二进制必须以0B开头 数据类型 分类:基本数据类型和
阅读全文