- 博客(40)
- 资源 (1)
- 收藏
- 关注
原创 Z 字形变换
题目:将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。请你实现这个将字符串进行指定行数变换的函数:...
2020-01-31 19:24:11 153
原创 最长回文子串
题目: 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000public class Test11 { public String longestPalindrome(String s) { char[] a = s.toCharArray(); int len = 0; int start = 0 ; int end = 0; ...
2020-01-31 16:17:44 108
原创 无重复字符的最长子串
题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。public int lengthOfLongestSubstring(String s) { if(s.length() == 0) return 0; char[] a = s.toCharArray(); int max = 0; int ...
2020-01-31 15:22:13 71
原创 jvm 类加载过程
如下图所示: JVM类加载机制分为五个部分:加载、验证、准备、解析、初始化,下面分别来看一下五个过程:加载加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的java.lang.class对象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个Class文件获取,这里既可以从ZIP包中读取(比如从jar包和war包中读取),也可以在运行时计算生成(动态代理),也...
2020-01-31 11:44:00 117
原创 JVM jvm回收算法和回收器,CMS采用哪种回收算法,怎么解决内存碎片问题
垃圾回收算法标记清除标记——清除算法将垃圾回收分为两阶段:标记阶段和清除阶段。在标记阶段首先通过根节点,标记所有从根节点开始的对象,未被标记的对象就是未被引用垃圾对象。然后,在清除阶段,清除所有未被标记的对象。标记清除算法带来的一个问题是会存在大量的空间碎片,因为回收的空间是不连续的,这样给大对象分配内存的时候可能会提前触发full gc.复制算法将现有的内存空间分为两块,每次只...
2020-01-31 08:38:34 1480
原创 算法:回溯法 矩阵中的路径
题目:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径,路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子利用回溯法:直接上代码 public static boolean hasPath(char[][] matrix,char[] str){ int rows= matri...
2020-01-30 09:13:33 149
原创 算法 旋转数组的最小的数字
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素其实就和二分查找的思想一致:直接代码 :public static void getMin(int[] a){ int left = 0 ; int high = a.length - 1; int mindle = 0; while(a[left...
2020-01-29 17:43:09 99
原创 mysql 高级 数据库锁
是什么?锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算机资源的征用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库极为重要。锁的分类:从对数据库操作的类型(读|写)分*读锁(共享锁):针对同一份数据,多个读操作可以同时进行而...
2020-01-29 11:03:39 112
原创 mysql 高级 使用Show Profile进行sql分析
当使用explain不能进行解决时,使用Show Profile进行sql分析是什么?是mysql提供可以用来分析当前会话中语句执行的消耗情况,可以用于sql的调优的测量。默认情况下,参数处于关闭状态,并保存最近15次的运行结果。分析步骤:1. 查看是否支持,看看当前的mysql版本是否支持;命令:show variables like ‘profiling’;2. 开启功能,默认是...
2020-01-29 09:34:23 225
原创 mysql高级 慢查询日志
是什么?MYSQL的慢查询日志是MYSQL提供的一种日志记录,它用来记录在MYSQL中运行时间超过long_query_time的SQL,则会被记录到慢查询日志中具体指运行时间超过long_query_time的SQL,则会被记录到慢查询日志中,意识是运行10秒以上的语句由它来查看哪些SQL超出了我们的最大忍耐时间值,比如一条sql语句执行超过5秒,我们就算慢sql,希望能收集超过5秒的s...
2020-01-28 10:42:12 117
原创 mysql 优化 sql查询优化
1.永远是小表驱动大表优化原则:2.优化order by 语句order by子句,尽量使用Index方式排序,避免使用FileSort方式排序。尽可能在索引列上完成排序操作,遵照索引建的最佳左排序优化策略:*增大sort_buffer_size参数设置*增大max_length_for_sort_data参数设置order by 关键字优化:1.Order by 时se...
2020-01-28 08:36:09 190
原创 mysql 索引优化(索引失效的原因)
索引失效的原因:全值匹配我最爱最佳左前缀法则,带头大哥不能死,中间兄弟不能少。不要在索引列上做任何操作范围条件后列上索引失效explain select * from student where age > 1 and name = ‘王五’;查找级别是范围,name这个索引失效了尽量使用覆盖索引减少使用select *使用不等于(!= 或者<&...
2020-01-26 08:18:22 356
原创 mysql 高级 EXPLAIN
使用EXPLAIN关键字可以模拟优化器执行sql查询语句,从而知道mysql是如何处理的sql语句。分析你的查询语句或是表结构的性能瓶颈。1. 怎么用?EXPLAIN+sql语句;会得到如下的字段:字段解释:id:select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序。三种情况:*id相同,执行顺序由上至下*id不同,如果是子查询,id的序号会递增...
2020-01-26 06:24:19 224
原创 mysql 索引
1. 什么是索引?索引是帮助mysql高效获取数据的数据结构(索引的本质是数据结构)索引的目的在于提高查询效率,可以类比字典。 *索引可以简单的理解为“排好序快速查找的数据结构”*在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这种数据结构以某种方式指向数据。这样就可以在这些数据结构上实现高级查找算法。这种数据结构就死索引。索引方式图:2.一般来说索引本身也很大,不可能全...
2020-01-24 15:13:22 3243
原创 sql joins
内连接select <字段> from tableA A inner join tableB B on A.key = B.key;左连接select <字段> from tableA A left join tableB B on A.key = B.key;右连接select <字段> from tableA A right ...
2020-01-24 10:55:47 315
原创 算法 归并排序
归并排序思想:图解代码:public static void sort(int[] a,int low,int high){ if(low <high){ int mid = (low+high)/2; sort(a,low,mid); sort(a,mid+1,high); mergeSort(a,low,mid,high); } } p...
2020-01-23 18:11:24 397
原创 算法 希尔排序
希尔排序思想:图解代码:public static void shellSort(int[] a){ int n = a.length; for(int h = n/ 2; h > 0; h /= 2){ for(int i = h; i < n; i++){ for(int j = i; j >= h ; j -= h){ if(a[j]...
2020-01-23 16:38:47 315
原创 算法 直接插入排序
直接插入排序思想:代码:public static void insertSort(int[] a){ int n = a.length -1; int temp = 0; for(int i = 1 ; i <= n ; i++){ temp = a[i]; int j; for(j = i -1; j>0 ; j--){ if(temp...
2020-01-23 12:22:21 307
原创 算法 快速排序
快速排序思想:代码:public class QuickSort { public static void quick(int[] a){ if(a.length > 0){ quickSort(a,0,a.length-1); } for(int b : a){ System.out.print(b+" "); } } private st...
2020-01-23 11:29:08 222
原创 斐波那契数列
题目:写一个函数,输入n 求斐波那契数列的第n项//第一种方式,利用递归,但是用递归效率不高 public static int ptF(int n){ if(n==0) return 0; if(n == 1) return 1; return ptF(n-1)+ptF(n-2); } //第二种,不存在重复发的运算 效率高 public static...
2020-01-23 10:38:38 179
原创 用两个栈实现队列
题目:用两个栈实现一个队列。队列声明如下,请实现她的两个函数apendTail和deleteHead,分别完成在队列尾部插入节点和在队列头部删除节点的功能public class Test5 { Stack<String> stack1 = new Stack<>(); Stack<String> stack2 = new Stack<>();...
2020-01-23 10:11:45 227
原创 java web部分的一些知识点
1. 讲一下http get 和post请求的区别get和post请求都是http的请求方式,用户通过不同的http的请求方式完成对资源(URL)的不同操作。具体来说get一般用于获取/查询资源信息,而post一般用于更新数据。get请求提交的数据会在地址栏显示出来,而post请求不会在地址栏显示出来。get提交,请求的数据会附在URL之后(就是把数据防止在http协议头中)。post...
2020-01-23 08:43:52 273
原创 使用线程池的作用
**使用线程池的作用**限定线程的个数,不会导致由于线程过多导致系统运行缓慢或崩溃线程池不需要每次都去创建或者销毁,节约了资源线程池不需要每次都去创建,响应时间更快注:连接池也是一样...
2020-01-23 08:18:33 139
原创 算法 二叉树的下一个节点
**题目: 给定一颗二叉树和其中的一个节点,如何找出中序遍历序列的下一个节点? 树中的节点除了有两个分别指向左右子节点的指针,还有一个指向父节点的指针**思想:如果一个节点有右子树,那么它下一个节点就是它的右子树中最左子节点。如果一个节点没有右子树,且该节点是它父节点的左孩子节点,那么它下一个节点就是它的父节点如果一个节点既没有右子树,并且它还是它父节点的右子节点,那么这种情况有点复...
2020-01-22 20:06:28 126
原创 算法 :重建二叉树
**题目: 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字**public static TreeNode construct(int[] preorder,int[] inorder){ if(preorder == null || inorder == null){ return null; } return...
2020-01-22 19:24:59 223
原创 从尾到头打印链表
**题目:输入一个链表的头节点,从尾到头反过来打印每个节点的值。**public static void printNode(Node head){ Node p = head; Stack<Node> s = new Stack<>(); while(p!= null){ s.add(p); p = p.next; } whil...
2020-01-22 15:59:40 124
原创 final,finally,finalize的区别
final:修饰符 有三种用法:如果一个类被声明为final,意味着它不能再派生出新的子类,即不能被继承,因此它和abstract是反义词。将变量声明成final,可以保证她在使用中不会被改变,被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取不可修改。被声明为final的方法也只能被使用,不能在子类中被重写。finally:通常放在try…catch的后面构造总是...
2020-01-22 13:45:32 894
原创 运行时常见的异常
ArithmeticException (算数异常)ClassCastException(类转换异常)IllegalArgumentException(非法参数异常)IndexOutOfBoundsException(下表越界异常)NullPointerException(空指针异常)SecurityException(安全异常)...
2020-01-22 13:35:45 191
原创 java如何进行异常处理,关键字:throws,throw,try,catch,finally分别如何使用
java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供良好的接口。在java中,每个异常是一个对象,它是Throwable类或其子类的实例。但一个方法出现异常后便抛出一个异常对象,该对象包含异常信息,调用这个对象的方法可以捕获这个异常并处理。java的异常处理是通过5个关键字来实现:try,catch,throw,throws,finally。一般情况下是用try来执行一段程序...
2020-01-22 13:25:18 3412
原创 try catch finally 的执行过程
try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候执行,在return前还是后?答:会被执行,在方法返回调用者前执行。java允许在finally中改变返回值的做法是不好的,因为如果存在finally代码块,try中的return语句不会立马返回调用者,而是记录下返回值待finally代码块执行完毕之后再向调用者返回其值,然后如果在f...
2020-01-22 12:58:42 185
原创 Error和Exception有什么区别
**Error和Exception有什么区别**Error表示系统级的错误和程序不必处理的异常,是恢复不是不可能但很困难的情况下的一种严重问题;比如内存溢出Exception表示需要捕捉或者需要程序进行处理的异常,是一种设计或实现问题;也就是说,它表示如果程序运行正常,从不会发生的情况。 **帅气的远远**...
2020-01-22 12:52:09 179
原创 java和JavaScript的区别
**对两种语言建的异同做如下比较:**1.基于对象和面向对象:java是一种面向对象的语言,即使开发简单的程序,必须设计对象;JavaScript是一种脚本语言,它可以用来制作与网络无关的,与用户交互作用的复杂软件。它是一种基于对象和时间驱动的编程语言。2.解释和编译:java的源代码在执行前,必须进行编译,二JavaScript是一种解释性编程语言,其源代码不需要进行编译,由浏览器解释执...
2020-01-22 12:45:07 195
原创 java中日期和时间
日期和时间//1.如何取得年月日 小时分钟秒 //如何格式化日期 /** * 英文简写(默认)如:2020年12月01日 */ public static void getTime(){ String FORMAT_SHORT = "yyyy-MM-dd"; /** * 英文全称 如:2020年12月01日 23:15...
2020-01-22 11:28:39 208
原创 怎么样将GB2312编码的字符创转换为ISO-8859-1编码的字符串
**怎么样将GB2312编码的字符创转换为ISO-8859-1编码的字符串**public static String change(String a){ try { return new String(a.getBytes("GB2312"),"ISO-8859-1"); } catch (UnsupportedEncodingException e) { // TOD...
2020-01-22 11:27:01 205
原创 如何利用递归实现字符串的反转?
利用递归实现字符串的反转//如何实现字符串的反转 public static String reverse(String originStr){ if(originStr == null || originStr.length() <= 1){ return originStr; } return reverse(originStr.substring(1))+orig...
2020-01-22 11:25:08 308
原创 算法:二维数组中的查找
题目:在一个二维数组中 每一行都按照从左到右递增的顺序排序 每一列都按照从上到下递增的顺序排序 请完成一个函数,输入这样的一个二维数组 和一个整数,判断数组中是否含有该整数***思路首先选取数组中右上角的数字 如果该数等于要查找的数字 则查找结果结束* 如果该数组大于查找的数字,则剔除这个数组所在的列* 如果该数字小于要查找的数字 则踢除这个数字所在的行* 也就是说 如果要查找的数...
2020-01-21 17:39:39 185
原创 算法:算法中重复的数字
题目:在一个长度为n的数组中的所有数字都在0-n-1的范围内 数组中某些数字是重复的,但不知道几个数组重复了,但不知道每个数字重复了几次。请找出数组中重复的数字import java.util.HashMap;/* * 在一个长度为n的数组中的所有数字都在0-n-1的范围内 数组中某些数字是重复的,但不知道几个数组重复了,但不知道每个数字重复了几次。 * 请找出数组中重复的数字 *...
2020-01-21 16:56:36 392
原创 Hibernate的简单应用
Hibernate1.什么是hibernate2.项目中简单的应用1.创建简单实体类public class Customer { private Long cust_id; private String cust_name; private String cust_source; private String cust_industry; private String c...
2020-01-08 18:29:05 180
Hibernate相应jar包.rar
2020-01-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人