自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 静态代理 Java实现

静态代理:让代理类代被代理类完成一些“非业务”代码,核心业务代码还是交给被代理者自己完成。例如:给所有方法都增加一个功能,统计该方法的运行时间代理模式:1、主题接口2、被代理类3、代理类public class TestStatticProxy { public static void main(String[] args) { // new Use...

2020-02-14 17:31:59 111

原创 排序之冒泡排序 Java实现

思想:从左到右不断交换相邻逆序的元素,在一轮的循环之后,可以让未排序的最大元素上浮到右侧。在一轮循环中,如果没有发生交换,那么说明数组已经是有序的,此时可以直接退出。实现:public class Bubble<T extends Comparable<T>> extends Sort<T> { @Override pub...

2019-09-09 17:14:50 106

原创 CGLIB动态代理

概念:使用 JDK 的 Proxy 实现代理,要求目标类与代理类实现相同的接口。若目标类不存在接口,则无法使用该方式实现。对于无接口的类,要为其创建动态代理,就要使用CGLIB来实现。CGLIB代理的生成原理是生成目标类的子类,而子类是增强过的,这个子类对象就是代理对象。所以,使用CGLIB生成动态代理,要求目标类必须能够被继承,即不能使final 的类。CGLIB 包的底层是通过使用...

2019-07-21 14:07:37 171

原创 动态代理之JDK动态代理

在了解JDK 动态代理之前先了解下动态代理,动态代理指的是程序在整个运行过程中根本就不存在目标类的代理类,目标对象的代理对象是由代理生成工具(如代理工厂类)在程序运行时由JVM根据反射等机制动态生成的。代理对象与目标对象的代理关系在运行时才确立。 而静态代理是指程序在运行前就已经定义好了目标类的代理类。代理类与目标类的代理关系在程序运行之前就确立了。------...

2019-07-16 19:40:54 70

原创 类与类之间的关系

1)泛化(继承)一个类继承另一个类,或者一个几口继承其他接口2)实现一个类实现接口3)依赖一个A类的方法返回值类型,方法参数类型或者是局部变量类型使用另外一个B类,称A类依赖B类4)关联如果A类使用B类定义成员变量,称A类关联B类5)聚合聚合是关联的一种,如果一个类A是由若干的B组成,并且不能决定B的生命周期,称A类为聚合类...

2019-07-14 16:03:00 131

原创 static关键字

static关键字修饰属性(域)时:·称为静态属性也叫作类的变量·在方法区(共享区)中存储,并且所有对象都可以访问·与类同生死·可以使用 类名.属性名,也可以使用 引用名.属性名注意:当引用名的值为null时,也可以访问静态属性,不会出现指针空异常·类优先于对象,也就是说类的生命周期比较长static关键字修饰方法:·称为静态方法也叫做类的方法·与类同生死...

2019-07-14 16:02:43 60

原创 JDBC 连接 MySQL 8版本以上的注意事项

1.引用外部库为:mysql-connector-java-8.x.xx有时候可能引入mysql-connector-java-5.x.xx 不会报错,但是以防万一还是与Mysql保持一致。2.连接驱动地址为:"com.mysql.cj.jdbc.Driver"3.建立连接时url 需要的参数url = "jdbc:mysql://localhost:3306/d...

2019-07-14 16:01:52 295

转载 新版SQL授权用户时报错 near 'IDENTIFIED BY '密码' with grant option' at line 1

楼主版本为8.0.111 问题:当使用 grant 权限列表 on 数据库 to ‘用户名’@’访问主机’ identified by ‘密码’; 时会出现”……near ‘identified by ‘密码” at line 1”这个错误2 原因:因为新版的的mysql版本已经将创建账户和赋予权限的方式分开了3解决办法:创建账户:create user ‘用户名’@’访问...

2019-07-13 11:43:37 1576

原创 IEAD中tomcat的sever.xml

IDEA配置tomcat不同于eclipse其中server.xml中的Context配置可以在以下图中配置,即可

2019-07-07 17:03:35 203

原创 String、StringBuffer和StringBuilder的比较

1、数据可变与不可变String底层使用一个不可变的字符数组 private final char value[];所以内容不可变。StringBuffer和StringBuilder都继承了AbstractStringBuilder底层使用的是可变字符数组:char[] value;2.线程安全StringBuilder是线程不安全的,效率高;StringBuffer是线程安...

2019-06-26 19:41:31 54

转载 length,length(),size()详解及区别

length属性:用于获取数组长度。int ar[] = new int{1,2,3}/*** 数组用length属性取得长度*/int lenAr = ar.length;//此处lenAr=3System.out.println("Arr length:"+lenAr);length()方法:用于获取字符串长度。String str = "Hello World J...

2019-06-14 14:24:33 326

原创 接口与抽象方法

相同点:1)都可以定义抽象方法2)都不能实例化对象3)定义抽象方法都需要被重写不同点:1)意义不同:抽象类是对事物更高层的抽象接口是对功能的封装2)定义方式不同:抽象类 abstract接口 interface3)内容不同抽象类中除了抽象方法外,还可以定义构造方法等普通类中定义的所有成员接口除了抽象方法等四个内容外,不能定义构造方法等内容4)...

2019-06-14 13:41:49 217

原创 LeetCode 101. 对称二叉树 (Java)

给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3但是下面这个[1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3采用递归的方法:/**...

2019-06-12 19:28:14 62

原创 几种排序算法的性能特点

算法 是否稳定 是否为原地排序 时间复杂度 空间复杂度 选择排序 否 是 1 插入排序 是 是 1 希尔排序 否 是 1 快速排序 否 是 归并排序 是 否 N 堆排序 否 是 1 ...

2019-06-12 18:52:32 95

原创 n&(n-1)的运用

先来看个题:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。先上代码: public int NumberOf1(int n) { int count = 0; while (n!=0) { count++; n = n & (n - 1); } ...

2019-06-05 22:00:21 1564 1

原创 Java 中 sleep() 与 wait() 的区别

1、sleep() 方法是 Thread类的静态方法,该方法导致此线程暂停执行指定时间,把执行机会让给其他线程,但是监控状态依然保持,到时候会自动回复。该方法不会释放对象锁。2、wait() 方法是 Object类的成员方法,当对象调用 wait() 方法时会导致本线程放弃对象锁,进入此对象的等待锁定池,只有针对此对象发出 notify()方法或 notifyAll()方法后本线程才进入...

2019-06-04 21:22:30 81

原创 排序之希尔排序 Java实现

算法:一个 h 有序数组就是 h 个互相独立的有序数组编织在一起组成的一个数组。在进行排序是,如果 h很大,我们就能将元素移动到很远的地方,为实现更小的 h 有序创造方便。用这种方式,对任意以1结尾的h序列,我们都能讲数组排序。实现:使用序列 1/2(-1),从 N/3 开始递减至 1 。这个序列被称为递增序列。实现希尔排序的一种方法是对于每个h,用插入排序将h 个子数组独立排序。...

2019-05-23 22:46:46 92

原创 排序之插入排序 Java实现

算法:在计算机的实现中,为了给要插入的元素腾出空间,我们需要将其余所有元素在插入之前都向右移动一位。对于一个很大且其中的元素已经有序(或接近有序)的数组进行排序将会比对随机顺序的数组或是逆序数组进行排序要快得多。对于随机排列的长度为N且主键不重复的数组,平均情况下插入排序需要~/4次比较以及~/4次交换。最坏的情况下需要~/2次比较和~/2次交换,最好情况下需要N-1次比较和0次比较。...

2019-05-08 17:13:29 121

原创 LeetCode 35. 搜索插入位置 (Java)

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例1:输入: [1,3,5,6], 5输出: 2示例2:输入: [1,3,5,6], 2输出: 1示例3:输入: [1,3,5,6], 7输出: 4示例4:输入: [1,3,5,6], 0输出: 0...

2019-04-29 18:57:16 204 1

原创 设计模式之单件模式(Singleton Pattern)Java实现

什么是单件模式——确保一个类只有一个实例,并提供一个全局访问点。1. 把某个类设计成自己管理的一个单独实例,同时也避免其他类再行生产实例。要想取得单件实例,通过单件类是唯一的途径。2. 当你需要实例时,向类查询,它会返回单个实例。使用延迟实例化的方式创建单件。经典的单件模式实现:public class Singleton { // 利用一个静态变量来记录Singleto...

2019-04-23 23:22:18 167

原创 LeetCode 28. 实现strStr() (Java)

实现strStr()函数。给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needle...

2019-04-23 22:25:43 138

原创 LeetCode 27. 移除元素 (Java)

给定一个数组 nums和一个值 val,你需要原地移除所有数值等于val的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均...

2019-04-12 20:41:17 286

原创 排序之选择排序 Java实现

算法: 首先,找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)。然后,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置,如此往复,直到整个数组排序。对于长度为的数组,选择排序需要大约/2次比较和次交换。选择排序有两个特点:1、运行时间和输入无关。一个有序数组或者主键全部相同的数组和一个元素随机排列的...

2019-04-11 23:09:10 102

原创 LeetCode 26. 删除排序数组中的重复项(Java)

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示例2:...

2019-04-09 21:44:42 622 1

原创 LeetCode 21. 合并两个有序链表 (Java)

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路:采用递归的方式反复调用mergeTwoLists() 方法。每次递归比较俩个链表的节点。/** * Definition for singl...

2019-04-08 21:27:36 300

原创 LeetCode 20. 有效的括号 (Java)

给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: false示例4:...

2019-04-04 19:54:09 123

转载 LeetCode 14. 最长公共前缀 (Java)

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z。官方思路:使用水平扫描法。首先,我们将...

2019-04-01 20:35:40 316

原创 JavaWeb 一部分基础知识

PS:我上课记录的一些笔记,巨长。分享给大家,欢迎指出错误和补充,谢谢大家。1.Tomcat的目录结构bin:启动和关闭需要的bat文件所在的目录conf:配置目录lib:Tomcat运行时所需要的jar包所在的目录logs:日志文件所在的目录temp:运行时产生的临时文件存放的目录,不需要管理webapps:开发中最常用的目录,web应用放置在此目录下,浏览器可...

2019-03-31 16:31:17 155

原创 LeetCode 13.罗马数字转整数(Java)

罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1...

2019-03-31 16:21:33 78

原创 LeetCode 9.回文数(Java)

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例1:输入: 121输出: true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。思...

2019-03-30 16:01:55 81

转载 Eclipse 快捷键大全

Ctrl+1快速修复(最经典的快捷键,就不用多说了)Ctrl+D:删除当前行Ctrl+Alt+↓复制当前行到下一行(复制增加)Ctrl+Alt+↑复制当前行到上一行(复制增加)Alt+↓当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑当前行和上面一行交互位置(同上)Alt+←前一个编辑的页面Alt+→下一个编辑的页面(当然是针对上面那条来说了...

2019-03-28 21:10:48 114

原创 LeetCode 7.整数反转(Java)

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例2:输入: -123输出: -321示例3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231, 231− 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。思路:利用tr...

2019-03-27 23:53:21 123

原创 LeetCode 1.俩数之和(Java)

给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]...

2019-03-26 10:31:49 134

原创 介绍一下JSP中application的用法。

根据老师所讲笔记整理所得。。。。。。有不对的地方欢迎指出。application对象1什么是application对象?(1)当Web服务器启动时,Web服务器会自动创建一个application对象。application对象一旦创建,它将一直存在,直到Web服务器关闭。一个Web服务器通常有多个Web服务目录(网站),当Web服务器启动时,它自动为每个Web服务目录都创建一...

2019-03-26 10:29:13 1479

原创 next()与nextLine()浅谈

      对于小白的我来说Scanner类下的这俩个方法让我着实的有点晕啊(其实还有很多让我晕的地方),所以我就通过看官方的文档和大神们的解释领悟到了些真谛,分享给大家。首先我们先看一下官方文档:next()Finds and returns the next complete token from this scanner. A complete token is preceded and f...

2018-06-30 22:09:55 102

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除