01 2021 档案
摘要:MyBatis(二) CRUD id:对应的namespace中的方法名 resultType:SQL语句中的返回值类型 parameterType:参数类型,基本类型可以省略 #:在SQL语句中表示参数 只要一个基本类型参数可以直接取到,对象的属性可以直接使用,map也可以直接使用键值 增删改必须
阅读全文
摘要:17. 电话号码的字母组合 题目链接 DFS class Solution { String[] letters = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"}; public List<String> let
阅读全文
摘要:第三章 查找(二) 3.2 二叉查找树 一颗二叉查找树(BST)是一颗二叉树,其中每个节点都含有一个Comparable的键(以及相关联的值)且每个结点的值都大于其左子树中的任意节点的键,而小于右子树的任意结点的键。 3.2.1 基本实现 public class BST<Key extends C
阅读全文
摘要:MyBatis(一) 简介 MyBatis是一款优秀的持久层框架 避免了几乎所有的JDBC代码和手动设置参数以及获取结果集 可以使用简单的XML或注解来配置和映射原生类型、接口和Java的POJO(Plain Old Java Objects)为数据库中的记录 原名iBatis,提供的持久层框架包括
阅读全文
摘要:单元测试 junit单元测试 导入依赖 <!-- https://mvnrepository.com/artifact/junit/junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <vers
阅读全文
摘要:过滤器 Filter:用来过滤网站的数据 登录验证、处理中文乱码等 开发步骤 导包,实现javax.servlet.Filter接口 重写init、doFilter、destroy三个方法 public class CharacterEncodingFilter implements Filter
阅读全文
摘要:MVC三层架构 模型Model 视图View 控制器Controller 早些年 视图层View:JSP 展示数据、提供可以供我们操作的请求 控制器Controller:Servlet 接收用户的请求、响应客户端内容、重定向或转发 用户直接访问控制层,控制层就可以直接操作数据库 程序十分臃肿,不利于
阅读全文
摘要:16. 最接近的三数之和 题目链接 与上一题一样的方法 class Solution { public int threeSumClosest(int[] nums, int target) { Arrays.sort(nums); int n = nums.length; int ans = nu
阅读全文
摘要:第三章 查找(一) 3.1 符号表 符号表是一种存储键值对的数据结构,支持两种操作:插入(put),即将一组新的键值对存入表中;查找(get),即根据给定的键得到相应的值 3.1.1 API 3.1.1.2 重复的键 每个键值对应着一个值 当存入的键值和已有的键冲突时,新的值会代替旧的值 3.1.1
阅读全文
摘要:JavaBean 实体类 有特定的写法: 必须要有一个无参构造 属性必须私有化 必须有对应的get/set()方法 一般用来和数据库的字段做映射 ORM:对象关系映射 表->类 字段->属性 记录->对象
阅读全文
摘要:JSP Java Server Pages JSP原理 在页面中嵌入Java代码,为用户提供动态数据 JSP最终也会转换成为一个Java类,本质上就是一个Servlet 内置方法: public void _jspInit();//初始化 public void _jspDestroy();//销毁
阅读全文
摘要:Cookie和Session 会话 会话:用户打开一个浏览器,点击了很多超链接,访问多个web资源,关闭浏览器的过程 有状态会话: cookie:服务器给客户端一个信件,客户端下次访问服务器带上信件就可以了 客户端技术(响应,请求) session:服务器登记你来过了,下次你来的时候我匹配你 服务器
阅读全文
摘要:15. 三数之和 题目链接 枚举+二分 很直接地想到,先排序,枚举前两个数,二分第三个数 class Solution { public List<List<Integer>> threeSum(int[] nums) { Arrays.sort(nums); List<List<Integer>>
阅读全文
摘要:第二章 排序(四) 2.5.2 我应该使用哪种排序算法 如果一个排序算法能够保留数组中重复元素的相对位置则可以被称为是稳定的 各种排序算法的性能特点 算法 是否稳定 是否为原地排序 时间复杂度 空间复杂度 备注 选择排序 否 是 N2 1 插入排序 是 是 介于N和N2之间 1 取决于输入元素的排列
阅读全文
摘要:Servlet(二) Mapping映射问题 指定一个映射路径: <servlet-mapping> <servlet-name>name</servlet-name> <url-pattern>/xxx</url-pattern> </servlet-mapping> 指定多个映射路径:直接指定多
阅读全文
摘要:14. 最长公共前缀 题目链接 横向扫描 先比较前两个字符串的最长公共前缀,所得结果再与下一个字符串比较 通过递归的方式,将多个字符串比较转换为两两比较 class Solution { public String longestCommonPrefix(String[] strs) { if(st
阅读全文
摘要:第二章 排序(三) 2.4 优先队列 最重要的两种操作:删除最大元素和插入元素 基于二叉堆数据结构的有限队列,可以实现对数级别的操作 2.4.1 API public class MaxPQ<Key extends Comparable<Key>> 删除最大元素:delMax() 插入元素:Inse
阅读全文
摘要:Servlet(一) 如果你想开发一个Servlet程序,只需要完成两个小步骤: 编写一个类,实现Servlet接口 把开发好的java类部署到web服务器中 HelloServlet 构建一个普通的Maven项目,删除里面的src目录,作为Maven主工程 通过新建Module来区分不同项目,就不
阅读全文
摘要:Maven 核心思想:约定大于配置 下载安装 下载地址,版本3.6.3 解压复制到熟悉目录下 配置 配置环境变量 M2_HOME:...\apache-maven-3.6.3\bin MAVEN_HOME:...\apache-maven-3.6.3 PATH中添加%MAVEN_HOME%\bin
阅读全文
摘要:Tomcat 安装Tomcat 下载地址,版本9.0.41 解压后放到熟悉目录即可 启动和配置 启动和关闭 启动apache-tomcat-9.0.41\bin\startup.bat 若闪退,需要先配置Java环境变量 在浏览器中输入http://localhost:8080/进行测试 打开apa
阅读全文
摘要:13. 罗马数字转整数 题目链接 贪心 class Solution { int[] values = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; String[] symbols = {"M", "CM", "D", "CD",
阅读全文
摘要:JDBC 数据库驱动 应用程序->JDBC->MySQL驱动->数据库 使用JDBC需要java.sql,javax.sql,数据库驱动包 MySQL驱动下载地址 版本:5.1.48 基本流程 package com.yhr.lesson01; import java.sql.*; public c
阅读全文
摘要:MySQL使用(三) 事务(Transaction) 要么都成功,要么都失败 将一组SQL放在一个批次中去执行 事务的原则: **ACID原则:原子性(Atomicity),一致性(Consistency),隔离性(Isolation),持久性(Durability) ** 原子性:整个事务中的所有
阅读全文
摘要:12. 整数转罗马数字 题目链接 打表 class Solution { private String[][] romanNum = { {"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"}, {"X", "XX", "XXX", "XL"
阅读全文
摘要:第二章 排序(二) 2.2 归并排序 2.2.1 原地归并的抽象方法 public static void merge(Comparable[] a, int lo, int mid, int hi){ //将a[lo..mid]和a[mid+1..hi]归并 int i = lo, j = mid
阅读全文
摘要:MySQL使用(二) 数据库的字段类型 数值 tinyint:1个字节 smallint:2个字节 mediumint:3个字节 int:4个字节 bigint:8个字节 float:4个字节 double:8个字节 decimal:字符串形式的浮点数,多用于金融计算 字符串 char:固定大小字符
阅读全文
摘要:11. 盛水最多的容器 题目链接 暴力解法 class Solution { public int maxArea(int[] height) { int n = height.length; int ans = 0; for(int i = 0; i < n-1; i++){ for(int j
阅读全文
摘要:第二章 排序(一) 2.1 初级排序算法 2.1.1 游戏规则 排序的目标:将所有元素的主键按照某种方式排列。 排序类算法的模板: public class Example{ public static void sort(Comparable[] a){}//对实现comparable接口对象组成
阅读全文
摘要:MySQL使用(一) 基本命令行操作 启动数据库:net start mysql 连接数据库:mysql -uroot -p 所有的语句都使用分号结尾 查看所有数据库:show databases 切换数据库:use 数据库名; 查看所有表:show tables; 显式表中的信息:describe
阅读全文
摘要:10. 正则表达式匹配 题目链接 动态规划 class Solution { public boolean isMatch(String s, String p) { int n = s.length(); int m = p.length(); boolean[][] dp = new boole
阅读全文
摘要:SQLyog安装及使用 1. 安装 网盘连接,提取码:gdjj,下载绿色版 输入注册名和注册秘钥 新建连接,输入相关信息 2. 使用 创建数据库:Ctrl+D或右键root@localhost 基字符集选utf8,数据库排序规则选utf8_general_ci 创建表:F4或右键表 引擎选InnoD
阅读全文
摘要:MySQL安装 1. 下载解压 官网下载地址 版本:5.7.32-winx64,zip压缩包 解压后放入自己熟悉的目录 2. 操作步骤 配置环境变量 右键此电脑-高级系统设置-高级-环境变量 在Path中添加mysql的bin目录 写配置文件 在mysql目录下新建配置文件my.ini 输入如下内容
阅读全文
摘要:JavaScript 引入JavaScript script标签内,可以放在head或body最底部(推荐) 外部引入,指定script的src属性,type默认js 基本语法 定义变量: var num = 1; 在浏览器打印变量:进入Console面板,console.log(variable)
阅读全文
摘要:9. 回文数 题目链接 反转字符串 class Solution { public boolean isPalindrome(int x) { return String.valueOf(x).equals(new StringBuilder().append(x).reverse().toStri
阅读全文
摘要:8. 字符串转换整数(atoi) 题目链接 直接模拟 class Solution { public int myAtoi(String s) { int ans = 0; int coefficient = 1; boolean hasFirst = false; for(char c : s.t
阅读全文
摘要:CSS 前端三要素 HTML:结构 CSS:表现 JavaScript:交互 基础 如果和HTML写在一起,<style>写在<head>里 基本语法: 选择器{ 声明1; 声明2; } 每个声明最好使用分号结尾 HTML和CSS分离 <link rel="stylesheet" href=
阅读全文
摘要:HTML 超文本标记语言 <>开放标签、</>闭合标签、自闭合标签 IDEA中Ctrl+/快速添加注释 IDEA中Tab键自动生成标签 网页基本信息 DOCTYPE声明:告诉浏览器使用什么规范 head标签:网页头部 body标签:网页主体 title标签:网页标题 meta标签:描述性标签,描述网
阅读全文
摘要:7. 整数反转 题目链接 直接调用Java内置API class Solution { public int reverse(int x) { int coefficient = 1; if(x < 0){ coefficient = -1; x *= -1; } int ans = 0; try{
阅读全文
摘要:6. Z字形变换 题目链接 按列模拟 class Solution { public String convert(String s, int numRows) { if (numRows == 1){ return s; } int rowMax = Math.min(numRows, s.len
阅读全文
摘要:Java注解与反射 注解Annotation 从JDK5.0开始引入 作用 不是程序本身,可以对程序作出解释 可以被其他程序(如:编译器)读取 格式 @注释名(参数) 使用方式 可以附加在package、class、method、field等上 通过反射机制编程实现对这些元数据的访问 内置注解 @O
阅读全文
摘要:Java网络编程 IP地址 本机localhost:127.0.0.1 InetAddress 通过静态方法获取实例 Socket InetSocketAddress 简单TCP通信 Server: public static void main(String[] args) { ServerSoc
阅读全文
摘要:5. 最长回文子串 题目链接 动态规划 class Solution { public String longestPalindrome(String s) { int n = s.length(); boolean[][] dp = new boolean[n + 1][n]; int left
阅读全文
摘要:Java多线程(lambda表达式) 线程创建 继承Thread类 自定义线程类继承Thread类 重写run()方法,编写线程执行体 创建线程对象,调用start()方法启动线程 实现Rannable接口 由于java单继承的局限性,推荐使用此方法 定义MyRunnable类实现Runnable接
阅读全文
摘要:Java IO流 分类 字节流(byte):InputStream,OutputStream 字符流(char):Reader,Writer 节点流:直接处理数据,例如FileReader、FileOutputStream 处理流:对已存在流的连接和封装 节点流(文件流) 字符流 读入 FileRe
阅读全文
摘要:Java File类 File类对象代表文件或文件目录 构造器 File(String pathname) 相对路径:相对于当前module,若为静态方法,则相对于当前工程 绝对路径:"\"需要用"\\"来转义,Linux和URL中使用"/" 也可以直接使用File.seperator来代替斜杠 F
阅读全文
摘要:Java泛型 Java1.5中引入泛型,允许在定义类、接口时,通过一个标识来表示类中某个属性的类型或是某个方法的返回值及参数类型。类型参数在使用时确定。 不使用泛型的问题 类型不安全 强制类型转换出错 集合中使用泛型 ArrayList<Integer> list = new ArrayList<>
阅读全文
摘要:4. 寻找两个正序数组的中位数 题目链接 O(m + n)算法 class Solution { public double findMedianSortedArrays(int[] nums1, int[] nums2) { int n = nums1.length + nums2.length;
阅读全文
摘要:Java集合——Collections工具类 可操作Set,List,Map 常用方法 排序相关: reverse(List) shuffle(List) sort(List) sort(List, Comparator) swap(List, int, int) 查找、替换: max(Collec
阅读全文
摘要:Java集合——Map 分类 HashMap:主要实现类;线程不安全,效率高;可以存储null的key和value;Java7之前数组+链表,Java8数组+链表+红黑树 LinkedHashMap:可以按照添加顺序实现遍历,同LinkedHashSet SortedMap TreeMap:按照ke
阅读全文
摘要:Java集合——Collection 分类 Collection接口:单列数据 List:元素有序,可重复 Set:元素无序,不可重复 Map接口:双列数据,key-value Collection中的方法 add(Object o) size() addAll(Collection c) clea
阅读全文
摘要:Java常用类——比较器 自然排序:java.lang.Comparable 实现Comparable接口中的int compareTo(Object o)方法,this大于形参返回正整数,小于返回负整数,相等返回0 实现Comparable接口的类,其组成的列表和数组可以通过Collection.
阅读全文
摘要:Java常用类——日期时间API Java8之前 java.lang.System public static long currentTimeMills():用于计算时间差,以毫秒为单位 与1970年1月1日0时0分0秒的时间差,为称为时间戳 java.util.Date 构造器 Date():I
阅读全文
摘要:Java常用类——StringBuffer和StringBuilder String、StringBuffer、StringBuilder对比 IDEA中Ctrl+Shift+T查看类定义 String:不可变 StringBuffer:可变,线程安全,效率低 StringBuilder:可变,线程
阅读全文
摘要:Java常用类——String String的特性 final类,表示不可变的字符序列 字符串是常量,创建后不可更改 ==比较地址值,.equals()比较字符串值 String不可变性 方法区的字符串常量值不会变,体现在: 当对字符串重新赋值时,需要重新制定内存区域赋值,不能修改原有的value
阅读全文
摘要:3. 无重复字符的最长子串 题目链接 最初的想法 class Solution { public int lengthOfLongestSubstring(String s) { int ans = 0, i = 0, j = 0; HashSet<Character> set = new Hash
阅读全文
摘要:Java异常 异常体系结构 Throwable Error virtualMachineError AWTError Exception IOException RuntimeException …… 捕获和抛出异常 捕获异常 try{ }catch(){ }finally{ } finally通常
阅读全文
摘要:Java内部类 1. 成员内部类 public class Outer{ public class Inner{ } } Outer outer = new Outer; Outer.Inner inner = outer.new Inner(); 内部类可以访问外部类的私有属性 2. 静态内部类
阅读全文
摘要:Java继承与多态 调用同名static方法 class A extends B A a = new A(); a.test(); //A B b = new A(); b.test(); //B 这里存在两个点: 父类引用可以指向子类对象 调用同名static方法时,只跟定义的类型有关,与实际引用
阅读全文
摘要:Java数组及内存分析 数组声明及创建 int[] nums = new int[5]; 内存分析 1. 堆 存放new的对象和数组 可以被所有线程共享,不会存放别的对象引用 2. 栈 存放基本变量类型(包含具体数值) 引用对象的变量(存放堆中的具体地址) 3. 方法区 可以被所有线程共享 包含了所
阅读全文
摘要:Java方法 Java方法是值传递 方法重载时返回值可以不一样 可变参数 JDK 1.5开始,Java支持传递同类型的可变参数给一个方法,如 public static void getNumber(double... numbers){ //numbers为double数组 } 一个方法中只能指定
阅读全文
摘要:Java Scanner对象 主要用于获取用户的输入 基本语法: Scanner s = new Scanner(System.in) 具体用法 通过next()和nextLine()方法获取字符串 读取前使用hasNext()和hasNextLine()判断是否还有输入的数据 使用close()方
阅读全文
摘要:Java包机制和JavaDoc Java包机制 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间 语法格式: package pkg1[.pkg2[.pkg3...]]; 一般采用公司域名倒置作为包名 使用包中的成员,需要导入: import pkg1[.pkg2...].(class
阅读全文
摘要:2. 两数相加 题目链接 直接解法 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) {
阅读全文
摘要:Java数据类型 分类 基本类型 byte(1), short(2), int(4), long(8), float(4), double(8), char(2), boolean(1) 引用类型 类,接口,数组 定义细节 long类型加L long num4 = 30L; float类型加F fl
阅读全文
摘要:1. 两数之和 题目链接 最直接的方法 class Solution { public int[] twoSum(int[] nums, int target) { for(int i = 0; i < nums.length; i++){ for(int j = i + 1; j < nums.l
阅读全文
摘要:MarkDown学习 标题 三级标题 四级标题 字体 Hello, World! Hello, World! Hello, World! Hello, World! 引用 引用内容,摘抄别人文章 分割线 图片 超链接 点击跳转 列表 A B C A B C 表格 名字 性别 生日 俞浩然 男 199
阅读全文

浙公网安备 33010602011771号