- 博客(45)
- 收藏
- 关注
原创 Servlet笔试题总结
笔试题一:下面有关servlet和cgi的描述,说法错误的是(D)A . servlet处于服务器进程中,它通过多线程方式运行其service方法B. CGI对每个请求都产生新的进程,服务完成后就销毁C. servlet在易用性上强于cgi,它提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等D. cgi在移植性上高于servlet,几乎所有的主流服务器都直接或通过插件支持cgiCGI(Common Gateway Inte
2022-02-15 20:14:32 664
原创 String为什么是final类型的
当面试官问道为什么 String 是final的时候,要答出两方面:第一就是final char value[] 的final ;第二就是 final class 的final。这两个final都要紧扣安全与性能两个方面阐述。1、final char value[] 的final 要抓住几个关键点是:value[]数组的final用于限制字符数组的修改。字符串将会被大量使用,从性能上考虑迫使Java语言的设计者将 char[] 设计为共享的,又因为字符串是共享的再次迫使设计者考虑到线程安全性,这
2022-02-15 09:48:52 640
原创 排序 — 归并排序
1.基本思想归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。2.补充:分治法: 在求解一个输入规模为n,而n的取值又很大的问题时,直接求解往往非常困难。这时,可以先分析问题本身所具有的某些特性,然后从这些特性出发,选择某些适当的设计策略来求解。例如,如果把n个输入划分成k个子集,分别对这些子
2022-02-14 20:01:59 213
原创 mysql8.0的sql文件导入5.5版本出现坑
第一个:字符编码问题错误:Unknown collation: ‘utf8mb4_0900_ai_ci‘。。。。。。解决方法:手动修改sql文件:utf8mb4_0900_ai_ci全部替换为utf8_general_ciutf8mb4替换为utf8第二个:时间类型问题错误Invalid default value for 'create_time' ...解决方法:datetime(0) 改为 datetime‘create_time‘ datetime NOT NULL
2022-02-07 10:56:26 992 1
原创 Redis - 连接服务 出现Jedis客户端获取不到资源(Could not get a resource from the pool )
经历描述:在一次springboot项目里使用Redis做缓存,记录某网页访问次数的时,连接异常,一直报redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool at redis.clients.util.Pool.getResource(Pool.java:53) at redis.clients.jedis.JedisPool.getR
2022-01-14 22:11:40 18015 5
原创 MyBatis(入门)
MyBatis(入门)一.Mybatis简介1.什么是MybatisMyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录2.Mybatis历史iBatis一词来源于“interne
2022-01-11 21:17:15 556
原创 LeetCode刷题笔记-格雷编码
89. 格雷编码n 位格雷码序列 是一个由 2n 个整数组成的序列,其中:每个整数都在范围 [0, 2n - 1] 内(含 0 和 2n - 1)第一个整数是 0一个整数在序列中出现 不超过一次每对 相邻 整数的二进制表示 恰好一位不同 ,且第一个 和 最后一个 整数的二进制表示 恰好一位不同给你一个整数 n ,返回任一有效的 n 位格雷码序列例如输入:n = 2输出:[0,1,3,2]解释:[0,1,3,2] 的二进制表示是 [00,01,11,10] 。- 00 和 01 有
2022-01-09 16:40:58 2714
原创 JavaSE高级 网络编程
JavaSE高级 网络编程教学目标 能够辨别UDP和TCP协议特点UDP 无连接,基于数据包,发出去就不管了,性能好,可能丢失数据。TCP有连接,基于通信管道,可靠传输。 能够说出TCP协议下两个常用类名称客户端Socket服务端ServerSocket 能够编写TCP协议下字符串数据传输程序参见代码! 能够理解TCP协议下文件上传案例参见代码! 能够理解TCP协议下BS案例参见代码! 能够说出NIO的优点。BIO:同步阻塞式通信
2022-01-06 22:43:04 300
原创 IO模型-NIO-BIO
IO模型 Network IO (这里我们以read举例),它会涉及到两个系统对象,一个是调用这个IO的process (or thread),以下简称用户态,另一个就是系统内核(kernel),以下简称内核态。 现代操作系统都包括内核空间(Kernel Space)和用户空间(User Space),内核空间主要存放内核代码和数据,是供系统进程使用的空间;而用户空间主要存放的是用户代码和数据,是供用户进程使用的空间。 当一个read操作发生时,它会经历两个阶段:1)等待数据准备 (Wa
2022-01-06 22:41:29 579
原创 javaSE线程
JavaSE高级 线程主要内容多线程重点内容,设计到多线程的开发都显得有点难理解。多线程是Java的经典技术之一。多线程是未来高并发技术的基石,也是基础线程安全volatile关键字原子性并发包死锁线程池教学目标 说出进程的概念 进程是运行中的程序。 说出线程的概念 线程是属于进程的 ,一个进程可以包含多个线程。 能够理解并发与并行的区别 并发:是一堆线程来抢占CPU执行自己!! 并行:同时有多个线程执行!!
2022-01-06 22:39:13 537
原创 Spring-Boot
SpringBoot2一.SpringBoot2简介1.学习要求学习要求-熟悉Spring基础-熟悉Maven使用环境要求Java8及以上Maven 3.3及以上学习资料Spring Boot官网Spring Boot官方文档2.Spring生态圈Spring能做什么? Spring的能力?官网http://spring.ioSpring的生态覆盖了:web开发数据访问安全控制分布式消息服务移动开发批处理…Spring5重大升级:响应式编程[外链图片
2022-01-06 22:37:14 1888
原创 Spring
Spring一.Spring初识1.Spring是什么?1.1 Spring是一个开源框架1.2 Spring为简化企业级应用开发而生,使用Spring可以使简单的JavaBean实现以前只有EJB才能实现的功能1.3 Spring是一个**IOC反转控制(DI依赖注入)和AOP面向切面编程**容器框架2.具体描述Spring2.1 轻量级:并不是说Spring的jar包有多大,而是说Spring是非侵入性的(即当用Spring时,不需要去实现Spring给提供的任何接口,不需要去继承它的任何
2021-12-19 17:10:41 580
原创 JavaWeb项目-订餐系统
1.1系统的开发环境1). IDEA在开发时订餐系统系统所采用的开发工具就是 Java 集成开发环境中最常用的 IDEA。2). MySQL数据库MySQL是一种关联数据库管理系统,它将数据保存在不同的表中,不同于其他数据库将所有数据放在一个大仓库内,因此我看中了它的速度以及灵活性。3). git 版本管理使用git进行项目版本管理4). Tomcat 服务器使用Tomcat8及以上版本1.2系统的开发技术1). jdk使用1.8版本及以上2). 使用JavaEE技术,JSP页面使用E
2021-12-15 22:14:51 3370 19
原创 1.初识spring
一.spring基础知识1.Spring概述2002年,Rod Jahnson首次推出了Spring框架雏形interface21框架。2004年3月24日,Spring框架以interface21框架为基础,经过重新设计,发布了1.0正式版。很难想象Rod Johnson的学历 , 他是悉尼大学的博士,然而他的专业不是计算机,而是音乐学。Spring是轻量级的开源的JavaEE框架Spring理念 : 使现有技术更加实用 . 本身就是一个大杂烩 , 整合现有的框架技术Sprin
2021-12-15 21:57:48 464
原创 mysql 增删改查
一.常见命令查看此仓库中的数据库容器命令:show databases; 此命令可查看此仓库中的数据库容器image-20211113110105894数据库容器 information_schema中,存放数据库服务端的基本信息数据;数据库容器 mysql中,存放的是用户信息、时区信息、表信息、函数、事件、存储过程等;数据库容器 performance_schema中,在新版本数据库中才存在,存放性能信息;数据库容器 test中,默认里面是空的,可以在里面编写表信息,进行操作测试;
2021-11-13 13:41:59 493
原创 MySQL简介和使用
MySQL简介和使用一.数据库概述1.1 什么是数据库? 数据库(DataBase 简称DB )就是存储数据的仓库。其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。 数据库的优点:可将数据持久化到硬盘,可存储大量数据,方便检索,保证数据的一致性、完整性,安全,可共享,通过组合分析,可以产生新数据。1.2 什么是数据库管理系统? 数据库管理系统(DataBase Management System 简称 DBMS):指一
2021-11-13 10:51:57 1139
原创 序列化和反序列 破坏单例模式,优化深克隆
1.序列化和反序列化 Java 提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该对象的数据、对象的类型和对象中存储的属性等信息。字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息。 反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化。对象的数据、对象的类型和对象中存储的数据信息,都可以用来在内存中创建对象。ObjectOutputStream类java.io.ObjectOutputStream 类,将Java对象的原始数据类型写出到文件,
2021-09-28 21:36:56 151
原创 java中的比较器
一、Comparable简介Comparable是排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序。此外,实现此接口的对象可以用作有序映射中的键或有序集合中的集合,无需指定比较器。该接口定义如下:package java.lang;import java.util.*;public interface Comparable<T> {
2021-09-20 17:04:14 106
转载 java如何对Map进行排序
Map排序(按key排序,按value排序)主要分两种,按键排序、按值排序。 而且,按key排序主要用于TreeMap,而按value排序则对于Map的子类们都适用。一、按键排序按Key排序主要用于TreeMap,可以实现按照Key值的大小,在对象插入时直接插入到合适的位置,保持Map的顺序性。来看TreeMap的构造函数:TreeMap(Comparator<? super K> comparator):构造一个新的、空的树映射,该映射根据给定比较器进行排序。这里的比较器是key的比
2021-09-20 15:57:04 24252
原创 关于Object和Objects
关于Object和Objects第1章 Object类1.1概述java.lang.Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object。如果一个类没有特别指定父类, 那么默认则继承自Object类。例如:public class MyClass /*extends Object*/ { // ...}根据JDK源代码及Object类的API文档,Object类当中包含的方法有11个。今天我们主要学习其
2021-09-08 18:45:00 184
原创 冒泡排序及冒泡排序的优化
思想:一个for循环遍历数组,让arr[ i ]和arr[ i+1 ]比较,如果arr[ i ] > arr[ i+1 ]就产生交换,每一轮比较下来就是将该数组中最大的数冒出来,第几轮就是找第几大时间复杂度 O(n)2public class BubbleDemo { public static void main(String[] args) { int[] arr = {8,4,2,1,23,344,12}; //i 比较轮数
2021-09-04 15:10:19 131
原创 Java面向对象 static、final、抽象、单例模式
第1章 static修饰符1.1 static简介1.1.1 概述 static是静态修饰符,一般修饰成员。被static修饰的成员属于类,不属于单个这个类的某个对象。 static修饰的成员被多个对象共享。 static修饰的成员属于类,但是会影响每一个对象。 被static修饰的成员又叫类成员,不叫对象的成员。static 修饰符特点:1.修饰成员,此成员不再属于某个对象,而是属于该类2.修饰块,即是静态块,随着类加载而加载至内存中3.在内存中独一份
2021-09-04 14:47:09 99
原创 Java面向对象 继承、方法的重写、关联和依赖
第1章 继承的概述及特点1.1 继承的概念1.1.1 继承的概述 is-a继承是面向对象的核心特性,是面向对象的学习重点。继承是代码复用的重要方式,是类与类之间的一种关系。从类与类之间的设计关系来看,子类必须属于父类的一种时,才会继承。父类抽取出了共性的内容,子类可以在父类基础上扩展新的属性与行为。子类拥有父类的所有属性与方法,无需重新定义。并且可以直接使用非私有的父类成员。关键字 extends1.1案例父类package com.igeek.javase.ch02.extends
2021-09-04 10:58:14 200
原创 Java面向对象 类、对象、构造方法、封装
第1章 面向对象基础1.1 编程思想概述1.1.1 面向过程思想概述我们回想一下,这几天我们完成一个需求的步骤:首先是搞清楚我们要做什么,然后在分析怎么做,最后我们再代码体现。一步一步去实现,而具体的每一步都需要我们去实现和操作。这些步骤相互调用和协作,完成我们的需求。在上面的每一个具体步骤中我们都是参与者,并且需要面对具体的每一个步骤和过程,这就是面向过程最直接的体现。那么什么是面向过程开发呢? 面向过程开发,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能方法相互调
2021-09-04 10:27:05 120
原创 Java基础知识 方法,方法的重载,String类
第1章 方法的概述及基本使用1.1 定义方法1.1.1 方法的概述 假设有一个游戏程序,程序在运行过程中,要不断地发射炮弹(植物大战僵尸)。发射炮弹的动作需要编写100行的代码,在每次实现发射炮弹的地方都需要重复地编写这100行代码,这样程序会变得很臃肿,可读性也非常差。为了解决代码重复编写的问题,可以将发射炮弹的代码提取出来放在一个{}中,并为这段代码起个名字,这样在每次发射炮弹的地方通过这个名字来调用发射炮弹的代码就可以了。上述过程中,所提取出来的代码可以被看作是程序中定义的一个方法,程序在需
2021-09-04 10:16:05 187
原创 Java基础知识 idea ,数组,Arrays工具类
Java基础知识 第4天【学习目标】理解、了解、应用、记忆1. 【应用】IDEA工具的安装及使用a) 【应用】掌握idea开发工具的安装b) 【应用】能够使用idea创建Java工程c) 【应用】能够使用idea创建包和类d) 【了解】idea的Java工程目录e) 【了解】idea字体的设置f) 【应用】idea常用开发快捷键g) 【了解】项目的导入和删除2. 【理解】一维数组内存结构及静态初始化a) 【记忆】能够阐述Java中的内存划分哪几块区域b) 【理解】能够根据代码阐述一个
2021-08-23 22:18:14 386
原创 LeetCode刷题笔记-逃脱阻碍者
你在进行一个简化版的吃豆人游戏。你从 [0, 0] 点开始出发,你的目的地是 target = [xtarget, ytarget] 。地图上有一些阻碍者,以数组 ghosts 给出,第 i 个阻碍者从 ghosts[i] = [xi, yi] 出发。所有输入均为 整数坐标 。每一回合,你和阻碍者们可以同时向东,西,南,北四个方向移动,每次可以移动到距离原位置 1 个单位 的新位置。当然,也可以选择 不动 。所有动作 同时 发生。如果你可以在任何阻碍者抓住你 之前 到达目的地(阻碍者可以采取任意行动方式
2021-08-22 23:21:50 71
原创 Java基础知识 第3天 选择语句,循环控制,随机数
Java基础知识 第3天【学习目标】理解、了解、应用、记忆1. 【应用】能够独立使用选择流程语句完成指定操作a) 【理解】阐述if语句的的第一种第二种及第三种书写格式及执行流程b) 【应用】独立编写代码,使用if语句完成获取两个数较大值的练习c) 【应用】独立编写代码,使用if语句完成判断学生等级练习d) 【理解】阐述switch语句的的格式及执行流程e) 【应用】独立编写代码,使用switch语句完成根据数字输出对应星期的练习2. 【理解】能够独立使用循环控制语句完成指定操作a) 【理解
2021-08-21 21:08:08 234
原创 LeetCode刷题笔记-压缩字符串
压缩字符串给你一个字符数组 chars ,请使用下述算法压缩:从一个空字符串 s 开始。对于 chars 中的每组 连续重复字符 :如果这一组长度为 1 ,则将字符追加到 s 中。否则,需要向 s 追加字符,后跟这一组的长度。压缩后得到的字符串 s 不应该直接返回 ,需要转储到字符数组 chars 中。需要注意的是,如果组长度为 10 或 10 以上,则在 chars 数组中会被拆分为多个字符。请在 修改完输入数组后 ,返回该数组的新长度。你必须设计并实现一个只使用常量额外空间的算法来解决此问
2021-08-21 20:27:07 301
原创 Java基础知识 第2天
Java基础知识 第2天【学习目标】理解、了解、应用、记忆1.【理解】能够灵活的使用Java中的各种运算符a. 【应用】独立编写代码使用(+,-,/,%,++,–等)算数运算符完成数学运算b. 【应用】阐述取余和除法的区别c. 【理解】阐述字符和字符串参与加法运算操作需要注意的事项d. 【理解】阐述++和–的作用,以及++,–在前或在后的区别e. 【理解】阐述赋值运算符和扩展运算符有哪些f. 【理解】阐述关系运算符有哪些,关系运算符得到的结果是什么g. 【理解】阐述逻辑运算符的基本使用及&
2021-08-20 23:21:58 131
原创 LeetCode刷题笔记-反转字符串II
反转字符串II给定一个字符串 s 和一个整数 k,从字符串开头算起,每 2k 个字符反转前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。示例 1:输入:s = "abcdefg", k = 2输出:"bacdfeg"示例 2:输入:s = "abcd", k = 2输出:"bacd"提示:1 <= s.length <= 104s 仅由小写英文组成1 <=
2021-08-20 23:11:12 98
原创 Java基础知识 第1天
【学习目标】理解、了解、应用、记忆1.【应用】理解Java概述、helloworld案例a. 【了解】知道java语言的发展史b. 【理解】JVM、JRE、JDK分别是什么?有什么作用?有什么关系c. 【应用】能够操作常用的DOS命令d. 【应用】独立下载安装JDK2.【理解】理解工具安装 、配置环境变量、注释、关键字a. 【应用】独立安装记事本软件b. 【应用】独立配置环境变量c. 【应用】独立编写HelloWorld案例,并能够调试问题,使程序正常运行d. 【理解】阐述注释、关键字的
2021-08-19 22:37:58 177
原创 LeetCode刷题笔记-反转字符串元音字母
反转字符串元音字母给你一个字符串 s ,仅反转字符串中的所有元音字母,并返回结果字符串。元音字母包括 ‘a’、‘e’、‘i’、‘o’、‘u’,且可能以大小写两种形式出现。示例 1: 输入:s = "hello" 输出:"holle" 示例 2: 输入:s = "leetcode" 输出:"leotcede"提示:1 <= s.length <= 3 * 105 s 由 可打印的 ASCII 字符组成class Solution { public String r
2021-08-19 22:12:42 396
原创 LeetCode刷题笔记-爬楼梯
爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。4. 1 阶 + 1 阶 + 1 阶5. 1 阶 + 2 阶6. 2 阶 + 1 阶。思路:如图所示,向右是选择2层楼梯,向左是选择1层,五层楼梯的
2021-04-11 00:01:09 124
原创 LeetCode刷题笔记-丑数
丑数给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。丑数 就是只包含质因数 2,3 , 5 的正整数。示例 1:输入:n = 6输出:true解释:6 = 2 × 3示例 2:输入:n = 8输出:true解释:8 = 2 × 2 × 2示例 3:输入:n = 14输出:false解释:14 不是丑数,因为它包含了另外一个质因数 7 。示例 4:输入:n = 1输出:true解释:1 通常被视为丑数。提示:
2021-04-10 17:02:30 442
原创 LeetCode刷题笔记-合并两个有序数组
合并两个有序数组给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。示例 1:输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]示例 2:输入:nums1 =
2021-04-08 20:59:58 136
原创 LeetCode刷题笔记-寻找旋转排序数组中的最小值
寻找旋转排序数组中的最小值已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到:若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]若旋转 4 次,则可以得到 [0,1,2,4,5,6,7]注意,数组 [a[0], a[1], a[2], …, a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], …, a[n-2]] 。给你一个元素值
2021-04-08 20:43:26 184
原创 LeetCode刷题笔记-森林中的兔子
森林中的兔子森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。返回森林中兔子的最少数量。示例:输入: answers = [1, 1, 2]输出: 5解释: 两只回答了 “1” 的兔子可能有相同的颜色,设为红色。之后回答了 “2” 的兔子不会是红色,否则他们的回答会相互矛盾。 设回答了 “2” 的兔子为蓝色。 此外,森林中还应有另外 2只蓝色兔子的回答没有包含在数组中。 因此森林中兔子的最少数量是 5
2021-04-08 20:25:10 80
原创 LeetCode刷题笔记-动态规划—直方图的水量
直方图的水量给定一个直方图(也称柱状图),假设有人从上面源源不断地倒水,最后直方图能存多少水量?直方图的宽度为 1。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的直方图,在这种情况下,可以接 6 个单位的水(蓝色部分表示水)示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6方法一:按行求解最好理解的方法思路:可以看做是总体积减去物品体积left,right,找层高high的边界,然后每一层的边界left-right+1就是每一层的体积
2021-04-07 22:19:53 284 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人