
java
文章平均质量分 56
请叫我算术嘉
快手HDFS
展开
-
基于java swing的学生学籍管理系统
原作githubGitHub - xuexuehan/scmis: Java Swing学籍管理系统Java Swing学籍管理系统. Contribute to xuexuehan/scmis development by creating an account on GitHub.https://github.com/xuexuehan/scmis改进了一下,主要实现了学生学籍的增删改查功能 新建了一张学生学籍表 重写了查询功能 去掉了其他菜单 ps:如果上面的运行代码提示java.lan.原创 2022-03-06 22:04:01 · 785 阅读 · 0 评论 -
使用SpringBoot重构Django博客(二)基于JWT的用户认证api
JWT暂且不表,主要讲讲如何获取Django的用户表和验证密码,由于Django的用户密码都是通过pbkdf2_sha256加密后存入数据库的,那么需要用java重写这加密过程然后进行比对。Pbkdf2Sha256.javapackage com.arithmeticjia.zuul.utils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.crypto.SecretKey;import javax.c原创 2021-03-14 15:11:39 · 20036 阅读 · 2 评论 -
使用SpringBoot重构Django博客(一)查询所有博客的api
考虑到文章的主表和分类表示一对多关联,标签表示多对多,使用Mybatis处理。这里的表结构如下所示:表结构文章idtitlebodycategory_id分类idname标签idname文章-标签中间表idarticles_idtag_idPojo.javapackage com.arithmeticjia.zuul.pojo;import java.util.Date;import java.util.List;/** * @author原创 2021-03-13 14:39:46 · 554 阅读 · 0 评论 -
Java线程和线程池详解
java线程java线程的五个状态NEW(尚未启动的线程处于此状态)RUNNABLE(在java虚拟机中执行的线程处于此状态)BLOCKED(被阻塞等待监视器的状态锁定的线程处于此状态)WAITING(正在等待另一个线程执行特定动作的线程处于此状态)TIMED WAITING(正在等待另一个线程执行动作达到指定等待时间的线程处于此状态)TERMINATED(已退出的线程处于此状态)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Um59MBqE-16001原创 2020-09-15 18:54:50 · 1617 阅读 · 0 评论 -
Java中Arrays.sort()的三种常用用法(自定义排序规则)
Arrays.sort(int[] a)这种形式是对一个数组的所有元素进行排序,并且是按从小到大的顺序。举例如下:import java.util.Arrays; public class Main { public static void main(String[] args) { int[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5}; Arrays.sort(a); for(int i = 0原创 2020-08-08 21:47:00 · 98470 阅读 · 9 评论 -
【Java】手写自定义类加载器
目录结构自定义类加载器package HelloClassLoader;import java.io.*;public class FileSystemClassLoader extends ClassLoader{ private String rootDir; public FileSystemClassLoader(String rootDir){ this.rootDir = rootDir; } @Override原创 2020-07-22 00:05:43 · 4262 阅读 · 0 评论 -
【LeetCode】检查替换后的词是否有效
题目描述给定有效字符串"abc"。对于任何有效的字符串 V,我们可以将 V 分成两个部分 X 和 Y,使得 X + Y(X 与 Y 连接)等于 V。(X或 Y 可以为空。)那么,X + "abc" + Y 也同样是有效的。例如,如果 S = "abc",则有效字符串的示例是:"abc","aabcbc","abcabc","abcabcababcc"。无效字符串的示例是:"abccba","ab","cababc","bac"。如果给定字符串 S 有效,则返回 true;否则,返回 fa..原创 2020-06-07 11:39:14 · 4683 阅读 · 0 评论 -
【LeetCode】BiNode
题目描述二叉树数据结构TreeNode可用来表示单向链表(其中left置空,right为下一个链表节点)。实现一个方法,把二叉搜索树转换为单向链表,要求值的顺序保持不变,转换操作应是原址的,也就是在原始的二叉搜索树上直接修改。返回转换后的单向链表的头节点。简单来说就是把二叉搜索树变成链表,不过是原地修改,改完的树只有右边节点解题思路中序遍历,根左右package treenode;public class convertBiNode { public static v原创 2020-05-28 10:18:39 · 4197 阅读 · 1 评论 -
【LeetCode】可被 5 整除的二进制前缀
题目描述输入:[0,1,1]输出:[true,false,false]解释:输入数字为 0, 01, 011;也就是十进制中的 0, 1, 3 。只有第一个数可以被 5 整除,因此 answer[0] 为真。解题思路我们不关心当前的二进制数转为的十进制数是几,不管它是几,这个二进制数下一个高位如果是1,那么就是这个二进制数*2+1,那么只需要关心二进制数对应十进制数的最后一位,反正是乘法。所以只要记录末尾那个数字就行package com.company;import java.原创 2020-05-22 05:57:45 · 4235 阅读 · 0 评论 -
【LeetCode】验证回文字符串 Ⅱ
解题思路从两端开始往中间遍历,遇到不是回文的,就判断去掉之后是不是回文,这里可以去掉左边的也可以去掉右边的代码package strings;public class validPalindrome { public static boolean validPalindrome(String s) { int length = s.length(); for(int i = 0; i < length;){ if(s.原创 2020-05-20 10:04:39 · 4065 阅读 · 0 评论 -
【LeetCode】反转链表 II
解题思路先移动节点到要反转的地方,反转链表就比较简单了,然后把当前节点和反转的链表以及后面的第一个节点的串起来即可代码/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode r原创 2020-05-17 15:50:27 · 4075 阅读 · 0 评论 -
【Java】 买卖股票的最佳时机含手续费
解题思路动态规划dp[i][j]表示第i天持股(j=1)不持股(j=0)的最大收益初始状态,第0天持股的最大收益dp[0][1] = -price[0] - fee = -(第0天股票的费用+卖出去的手续费)因为,你持股不卖一定比持股卖掉收益大初始状态,第0天不持股的最大收益dp[0][0] = 0,状态转移方程就很好想了,见代码class Solution { pu...原创 2020-05-04 12:31:08 · 4074 阅读 · 0 评论 -
【Java】快速排序
1、一般找第一个数作为基准2、双指针从左右两边开始遍历3、左指针遇到比基准大的,右指针遇到比基准小的,停下4、交换两个指针位置的值5、左右指针相遇退出循环,交换左指针(右指针)和基准的值,此时,基准出现在本来该在的位置package sort.method;import java.util.Arrays;public class quickSortMy { ...原创 2020-04-22 23:08:02 · 3893 阅读 · 1 评论 -
【Java】用最少数量的箭引爆气球
package greedy;import java.util.Arrays;import java.util.Comparator;public class findMinArrowShots { public static void main(String[] args){ int[][] p = {{10,16}, {2,8}, {1,6}, {7,12...原创 2020-04-21 22:35:45 · 3962 阅读 · 1 评论 -
【Java】返回倒数第 k 个节点
题目描述实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。注意:本题相对原题稍作改动示例:输入: 1->2->3->4->5 和 k = 2输出: 4说明:给定的k保证是有效的。解题思路我这里给出两种解法第一种:1、找到链表的长度n2、把头结点往后挪n-k个/** * Definition for s...原创 2020-04-18 14:01:56 · 320 阅读 · 1 评论 -
【Java】访问修饰符
public:对所有类可见 修饰类、变量、方法、接口protectd对同一包内的类和所有子类可见 修饰变量、方法 不可修饰类default同一包内可见 修饰类、变量、方法、接口private同一类可见 修饰变量、方法 不可修饰类总结两条1、类只能默认或者public修饰,默认的话只能是同一个包访问,public任意可访问2、优先级从高到低分别是publi...原创 2020-04-14 21:21:06 · 3330 阅读 · 0 评论 -
【Java】动态规划不同路径 I
先看第一题题目描述一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?示例1输入: m = 3, n = 2输出: 3解释:从左上角开始,总共有 ...原创 2020-04-13 17:42:39 · 234 阅读 · 0 评论 -
【Java】01 矩阵
题目描述给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。两个相邻元素间的距离为 1 。示例 1:输入:0 0 00 1 00 0 0输出:0 0 00 1 00 0 0示例 2:输入:0 0 00 1 01 1 1输出:0 0 00 1 01 1 1注意:给定矩阵的元素个数不超过 10000。给定...原创 2020-04-11 22:32:15 · 439 阅读 · 0 评论 -
【Java】解码方法
题目描述一条包含字母A-Z的消息通过以下方式进行了编码:'A' -> 1'B' -> 2...'Z' -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。示例 1:输入: "12"输出: 2解释: 它可以解码为 "AB"(1 2)或者 "L"(12)。示例 2:输入: "226"输出: 3解释: 它可以解码为 "BZ...原创 2020-04-11 15:02:39 · 568 阅读 · 0 评论 -
【Java】线程池
ThreadPoolExecutorThreadPoolExecutor是线程池真正的实现,一共有四种构造方式分别是public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime...原创 2020-04-09 00:32:46 · 3396 阅读 · 0 评论 -
【Java】最长回文子串
题目描述给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"解题思路一、暴力法class Solution { public String longestPalindrome(S...原创 2020-04-08 15:33:31 · 571 阅读 · 0 评论 -
【Java】最长回文串
题目描述给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如"Aa"不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例 1:输入:"abccccdd"输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。1、这道题不需要你给出具体的回文串构造,只...原创 2020-04-08 14:09:25 · 384 阅读 · 0 评论 -
【Java】扑克牌中的顺子
题目描述从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。示例1:输入: [1,2,3,4,5]输出: True示例2:输入: [0,0,1,2,5]输出: True限制:数组长度为 5数组的数取值为 [0, 13] ....原创 2020-04-05 14:28:45 · 652 阅读 · 0 评论 -
【Java】构建乘积数组
假设有n个数分别构造两个数组长度都是n一个表示a[0]-a[i-1]也就是每个a[i]左边的数的积另一个表示a[i+1]-a[n-1]也就是a[i]右边边的数的积下面的方法简化了右边积的数组构建class Solution { public int[] constructArr(int[] a) { int[] res = new int[a.leng...原创 2020-04-01 17:48:20 · 294 阅读 · 0 评论 -
【Java】浅谈HashMap
基础知识数组:采用一段连续的存储单元来存储数据。对于指定下标的查找,时间复杂度为O(1);通过给定值进行查找,需要遍历数组,逐一比对给定关键字和数组元素,时间复杂度为O(n),当然,对于有序数组,则可采用二分查找,插值查找,斐波那契查找等方式,可将查找复杂度提高为O(logn);对于一般的插入删除操作,涉及到数组元素的移动,其平均复杂度也为O(n)线性链表:对于链表的新增,删除等操作(在找...原创 2020-04-01 15:46:15 · 3359 阅读 · 0 评论 -
【Java】圆圈中最后剩下的数字
方法一:模拟过程class Solution { public int lastRemaining(int n, int m) { boolean[] arr = new boolean[n]; // 一开始所有都为true for(int i = 0;i < n;i++){ arr[i] = true;...原创 2020-03-31 21:49:33 · 197 阅读 · 0 评论 -
【Java】为什么HashMap中个数超过8才转为红黑树
首先,为啥在jdk.1.8中,HashMap的存储结构变为数组+链表(红黑树)了呢?当发生hash冲突时,链表的复杂度是O(n),而树结构的复杂度是O(logn),当链表不太长的时候,遍历是可以接受的,但超过一定长度,就要转化为树结构了,那为啥是8?分析源码,作者在注释中是这么说的TreeNodes占用空间是普通Nodes的两倍,所以只有当bin(bin就是bucket-桶,即Hash...原创 2020-03-29 13:04:58 · 8119 阅读 · 6 评论 -
【Java】创建线程池验证synchronized以及线程池关闭的正确姿势
talk is cheap,show methe code这里创建了包含10个线程的线程池,每个线程池对变量做1000次自增如果去掉synchronized,最后的结果就不是10000,因为自增操作不是原子性的举个栗子:假如某个时刻变量inc的值为10,线程1对变量进行自增操作,线程1先读取了变量inc的原始值,然后线程1被阻塞了;然后线程2对变量进行自增操作,线程2也...原创 2020-03-29 00:49:39 · 3335 阅读 · 0 评论 -
【Java】青蛙跳台阶问题(递归+备忘录)
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:2示例 2:输入:n = 7输出:21提示:0 <= n <= 100解题思路很自然想到递归,但是开销很...原创 2020-03-27 00:00:15 · 765 阅读 · 0 评论 -
【Java】两个数组的交集 II
题目描述给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。我们可以不考虑输出结果的顺序。...原创 2020-03-25 23:45:19 · 513 阅读 · 0 评论 -
【Java】被围绕的区域(DFS)
题目描述给定一个二维的矩阵,包含 'X' 和 'O'(字母 O)。找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X解题思路DFS+递归寻找和边界联通的'O',其他的'O‘都...原创 2020-03-25 16:02:26 · 13554 阅读 · 0 评论 -
【Java】重写和重载的区别
重写 重载 类 父子类、接口与实现类 本类 方法名称 一致 一致 参数列表 一定不能修改 必须修改 返回类型 ...原创 2020-03-24 21:58:03 · 3203 阅读 · 0 评论 -
SpringBoot+Vue.js+Element-UI实现图片上传
.vue文件,指定文件上传的接口地址<el-upload class="upload-facepic" action="xxxxxxx" :on-preview="handlePreview" :on-remove="handleRemove" :before-remove="beforeRemove" multiple ref=...原创 2020-03-22 18:55:16 · 4086 阅读 · 3 评论 -
使用Nginx配置SSL证书部署SpringBoot+Vue
贴一下nginx.conf配置文件root下是你vue工程build后的dist文件夹地址,直接把你的vue工程里面dist文件路径贴上去就行server { listen 443; server_name me.guanacossj.com; ssl on; ssl_certificate /etc/nginx/cert/xxx.p...原创 2020-03-22 16:18:18 · 1216 阅读 · 1 评论 -
【Java】数组中重复的数字
题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。解题思路用HashMap,每次遇到重复的+1import java.util.*;public class...原创 2020-03-17 16:04:12 · 187 阅读 · 0 评论 -
【Java】输入一棵二叉树,判断该二叉树是否是平衡二叉树
采用自底向上,复杂度为O(n)getDepth这个方法返回一个数,要么是-1,要么是这个平衡二叉树的深度,最后只要判断不是-1就是平衡二叉树public class Solution { public boolean IsBalanced_Solution(TreeNode root) { return getDepth(root) != -1; } ...原创 2020-03-17 13:29:47 · 633 阅读 · 0 评论 -
【Java】字符串全排列
题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。i表示当前交换位置,与从i开始的每一个进行交换,因为本身也是一种排列,所以起始是i=j,举个例子abc,首先i从0开始,a和a自己交换,abc,继续递归,直到abc这一分支递归完毕,此时必须交换回来,...原创 2020-03-16 14:01:39 · 932 阅读 · 0 评论 -
【Java】给定一个包含大写英文字母和数字的句子,找出这个句子所包含的最大的十六进制整数
这里用到了几个知识点Character.isDigit('9')判断是否数字,这里的参数必须是字符类型,返回true或者falses.charAt(i)访问字符串,并转为字符类型Integer.parseInt(String s)字符串转为10进制以上了解的话就能很容易看懂代码了import java.util.*;public class Solution {...原创 2020-03-15 17:25:52 · 5887 阅读 · 1 评论 -
【Java】装箱拆箱
什么是自动装箱和拆箱自动装箱就是Java自动将原始类型值转换成对应的对象,比如将int的变量转换成Integer对象,这个过程叫做装箱,反之将Integer对象转换成int类型值,这个过程叫做拆箱。因为这里的装箱和拆箱是自动进行的非人为转换,所以就称作为自动装箱和拆箱。原始类型byte,short,char,int,long,float,double和boolean对应的封装类为Byte,Sh...原创 2020-03-15 15:35:19 · 4453 阅读 · 0 评论 -
【Java】对于一个给定的字符序列S,请你把其循环左移K位后的序列输出
package com.company;import java.util.ArrayList;public class LeftRotateString { public String LeftRotateString(String str,int n){ if(str.length() < n || str.length() == 0){ ...原创 2020-03-15 14:20:26 · 4609 阅读 · 0 评论