- 博客(38)
- 问答 (1)
- 收藏
- 关注
原创 hashmap计算hashcode时为什么要把高位右移16位
写在前面:1、如有错误请看官斧正。2、建议把例子复制出去,自己用各种位运算算一下,然后也像我这样把异同处标出来,这样能在自己计算的过程中有更深的领悟。一、hashmap计算hashcode时为什么要把高位右移16位有一个hashcode值的二进制形式key.hashcode()二进制:0010-0101 1100-0100 0010-0101 1011-0110十进制:633611702上面这么写只是为了便于观察,并不遵循任何规范。key.hashcode() >
2021-04-17 00:09:24
6393
原创 java基础之23种设计模式巧记
23种设计模式巧记1.设计模式六大原则2.23种设计模式1)创建型 5种2)结构型 7种3)行为型 11种1.设计模式六大原则巧记:一接单,开地里(情景记忆:骑手一接单,就开到了地里,谐音记忆)一:依赖倒置原则接:接口隔离原则单:单一职责原则开:开闭原则地:迪米特原则里:里式替换原则2.23种设计模式1)创建型 5种巧记:建原抽工单(情景记忆:一个叫建原的人抽走了工单)建:建造模式原:原型模式抽:抽象工厂工:工厂方法单:单例模式2)结构型 7种巧记:桥代理组合适配器,
2020-12-29 16:03:44
681
转载 sql语句性能优化50条
SQL语句性能优化1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2,应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。3,应尽量避免在 where 子句中使用!=或<>操作符, MySQL只有对以下操作符才使用索引:<,<=,=,>,>=,BETWEEN,IN,以及某些时候的LIKE
2020-12-29 10:49:26
227
原创 java常见设计模式之---单例模式
java常见设计模式之---单例模式1、单例模式简介应用场景举例2、单例模式的特点3、单例模式和静态类4、单例模式的经典实现饱汉式单例创建饿汉式单例创建,五种方法0)、不完美的饿汉式(非线程安全)1)、同步延迟加载 — synchronized方法2)、双重检验锁模式(double checked locking pattern)(有概率线程不安全)3)、volatile关键字防止重排序5、枚举法解决单例被反射破解问题1、单例模式简介单例模式(Singleton Pattern)是一个比较简单的模式,其
2020-12-28 22:57:49
200
原创 java基础之-----初识栈
初识栈和队列栈LinkedList类中的栈操作方法ArrayDeque中的栈操作ArrayDeque特点栈栈是之中基本数据结构,具有先进后出的特性。在java中的栈结构实现。//vactor已经被ArrayList替代了,Stack也不建议使用了class Stack<E> extends Vector<E> {}Deque接口//可以使用LinkedList类中的栈操作方法---底层使用双向链表public class LinkedList<E>
2020-12-24 23:18:10
155
原创 java集合框架入门解析-----linkedList
java集合框架入门解析-----linkedList0.结构图1.linkedList是什么2.linkedList的特点3.LinkedList继承的类和实现的接口0.结构图1.linkedList是什么LinkedList使用了循环双向链表数据结构,并提供了一些队列,栈,双端队列操作的方法。2.linkedList的特点1)与ArrayList对比,LinkedList插入、删除更高效,随机访问速度慢。2)非同步,线程不安全,支持null,有序,元素可重复。3)可以作为栈,队列,双端队
2020-12-20 15:13:52
196
1
原创 java集合框架入门解析-----Vector和Stack
阅读导航0.结构图1.Vector是什么2.Vector的特点3.Vector内部数组扩容4.Vector继承的类和实现的接口5.Vector遍历0.结构图1.Vector是什么可以简单的认为Vector是一个动态数组;Vector是通过数组实现的,长度不够是,调用Arrays.copyOf方法,拷贝当前数组到一个新的长度更大的数组中。2.Vector的特点vector和ArrayList极其相似,所以很多时候都会被对比异同。相同点:1)都继承了AbstractList抽象类,实现了List
2020-12-13 18:19:14
534
原创 java集合框架入门解析-----Iterator
一、java集合框架图二、Iterator的前世今生从上面的框架图中可以看到,java的集合类主要分为两大家族,一个是以Collection为首,另一个是以map为首。每个分支都枝繁叶茂,接下来就从上图的第一个接口Iterator逐个介绍。在说Iterator前不得不提下被Iterator拍在沙滩上的前浪Enumeration,这可不是我说的,是官方文档上说的。该接口提供了两个方法来枚举向量的元素,哈希表的键以及哈希表中的值。枚举还用于指定SequenceInputStream的输入流。但是
2020-12-10 22:21:15
184
转载 递归查询森林结构所有子节点
一张表用来存储树形结构的父节点和叶子节点,大体是这样定义的。测试数据需求很简单:这张表表示的是一个数结构,其中groupid代表的是父节点,而nodeid代表的是相应的子节点,我们想要的是整个树结构的全部叶子节点。当然涉及到多棵树,就组成了森林结构,也就是查找指定森林结构的所有叶子节点。思路也很Easy:遍历每一颗树,利用写好的递归查询函数去查询每棵树的最终叶子结点,然后把它们保存到静态list中。import java.util.ArrayList;import java.util.List
2020-11-24 22:35:06
394
原创 map通过键获取不到值(记一次智障错误)
一、背景需要对接口进行测试,在接口文档中找到了测试方式二、问题使用postman工具进行传值跟踪到后台接口代码发现 LATN_ID 没能获取到对应的值排查了半天,原因竟然是测试文档中给的数据在 LATN_ID 后面多加了一个空格即“LATN_ID ”造成了键名的不匹配。如此智障的错误浪费了我一个多小时…贴出来给大家也做个警醒吧,程序没错的话要看看自己数据有没有问题。...
2020-10-29 10:00:28
2209
2
原创 python实现RGB字符串,按24位对齐后输出对应Integer行数字
话不多说直接上代码问我为啥我也不会,只是个工具人…搬来的代码解决问题,以后再深究了def RGB_to_Int(Red,Green,Blue): r, g, b = (Red, Green, Blue) packed = int('%02x%02x%02x' % (r, g, b), 16) print(packed)if __name__ == "__main__": arr = input("输入数组:") #截取字符串 str=arr[4:-1]
2020-10-25 20:15:06
835
7
原创 缺少依赖包引起的Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:
一、问题描述公司要把已有的代码迁移到云道平台,以前的纯javaWeb工程中的依赖包要改成maven仓库,代码的改造方面,除了添加pom.xml文件外,也没多大变化,但是在构建war文件时,提示了好多缺少依赖包的错误,一个个添加后,最后报了这个错[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project httpjsoncuvd
2020-10-16 09:16:24
1452
1
原创 个人处理java.lang.OutOfMemoryError: Java heap space的一次记录
一、问题背景根据业务需求做了一个接口,主要功能是根据查询规则在数据库中查出数据,然后生成文件,校验文件,压缩文件,之后再把这三个文件上传到指定服务器。但由于数据量大,平时1kw+峰值则4kw+,虽然处理性能要求不高,但也不能跑太慢。按常规方法实现后跑1500w数据大概需要半个小时,还算符合业务需求。这两天数据量大,跑到2200w的时候出现了OOM。二、问题处理OOM的出现主要有两点,1.是内存真的不够了,执行的时候需要扩大堆内存。2.程序中出现了死循环有实例持有大量new对象得不到释放。针对这两点进
2020-10-10 09:50:25
718
原创 java从oracle中读取大量数据写出到文件
java从oracle中读取大量数据写出到文件背景:项目中需要从oracle中读取表字段并以指定间隔符拼接字段,输出到txt。每张表的数据量大概在2000W左右,因为是只需要读一张表指定字段的全部数据,也不需要考虑查询优化,只针对表读取规模进行优化即可。版本oracle 11G思路一:使用oracle语句对数据表进行分页读取,这里应注意到的是rowid效率和rownum效率问题,还有使不使用order bySELECT t.* FROM a t, (SELECT ROWNUM rn, c.*
2020-09-15 16:42:06
3517
8
原创 jar包外读取log4j的配置文件
jar包外读取log4j的配置文件背景:将配置文件全部外放,jar包中的配置文件我全给删除了。需要读取jar包同目录下的配置文件。xml文件貌似不用配置,可以直接读取。log4j的配置文件需要在main函数中添加如下语句(我添加到了main函数下的第一行)PropertyConfigurator.configure(System.getProperty("user.dir") + "/log4j.properties");注意:我这个properties文件默认是读取src目录下的貌似放
2020-09-09 14:27:17
1341
原创 IDEA中切换不同版本的JDK(如果网上方法都没用,可以来看看)
IDEA中切换不同版本的JDK(如果网上方法都没用,可以来看看)背景:组长给我了个eclipse开发的代码,我导入到了IDEA中,一直拿JDK1.8进行的开发,完事之后发现服务器环境是JDK1.7,那就再IDE中直接换JDK重新编译呗,没想到一路坎坷。**请看到最后**网上的一般方法:步骤一:选择SDK,导入相应的JDK所在文件夹。步骤二:选择模块默认使用的jdk语言标准步骤三:导入jdk对应版本的原生依赖步骤四:设置好SDK的默认值如果还是不行,又出现了步骤五:反正我
2020-09-09 10:33:58
1096
1
原创 服务器中通过java执行Linux语句
服务器中通过java执行Linux语句这里我只介绍一种应用,不对函数功能进行详细分析了。需求:把指定文件进行des3加密与简单执行语句不一样的地方是,这条加密语句中用到了管道符,所以不能直接使用下面这种语句Process process=Runtime.getRuntime().exec("ls ./");我剽来的代码是这么写的,注意exec里面的参数是 new String[]{“sh”,"-c",com}public static void main(String[] args) {
2020-09-09 09:54:44
161
原创 含泪总结,Hadoop集群云服务器间ssh免密登陆设置问题。
本篇主要总结我在配置云服务器之间免密登陆出现的问题背景:因为最近在跟着视频学做大数据数仓项目,视频教程里老师用的电脑配置挺好,32G内存,搭建三个服务器组成的集群能应付的过来,我就惨了,本子只有8G内存,四核四线程的处理器,照视频那个搭指定是废了。本来我想买三台云服务器着(穷屌丝一个,只能买的起1核2g的),好在我的好舍友金城武手里有资源,甩手给我配了三台4核8G的服务器,让我做项目临时用用。一路跟着视频走,到SSH免密登陆的时候卡壳了。遇到的问题如下:1.以前只在本地搭过虚拟机,开始的时候我自己搭了
2020-06-20 09:33:29
822
1
原创 java求任意整数各个数位上的数字并输出(用了数组扩容)
某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,在传递过程中需要加密,加密规则如下: 首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字, 最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数, 然后,把加密后的结果在控制台打印出来。 题目要求解析: A:数据是小于8位的整数 定义一个int类型的数据 int number ...
2019-11-22 21:25:54
771
原创 java实现“*”的多种形状排列(超详细,提高篇)
引例上一篇我们说了怎么在编写靠左边的三角形,今天我们来说怎么写靠右边的三角形。>> 寻找规律> 1 2 3 4 5 6 7 1 。。。。。。* 2 。。。。。* * 3 。。。。* * * 4 。。。* * * * 5 。。* * * * * //第一行 for(int j=1 ; j<=6 ; j+...
2019-11-20 13:47:51
1345
原创 java实现“*”的多种星形排列(超详细,基础篇)
引例: public static void test(){ //输出三角形也好,菱形也罢主要是要搞清楚每行要输出多少,哪里该输出 //哪里不需要输出。 //理解好了每行的变化,再写程序就轻松多了。 //假如要输出一个由7行7列“*”拼凑成的直角三角形 //不采用嵌套FOR循环时 for(int y=1 ; y<=1 ; y++){ //输出第一行 Sy...
2019-11-19 21:41:05
2284
1
转载 解决win10开机内存过高的办法(亲测有效)
我遇到的情况在安装vmware虚拟机前,开机内存一直维持在25%左右(8G),后来因为在机器上安装VS2015出现很多报错,就在虚拟机中安了,用过几次后发现即使没有运行虚拟机,开机内存竟然还会超过70%,网上查到了两个方法,我是一起用的,更改完后开机内存稳定到了25%左右,前后的对比图忘截了,大家可以下载个RAMMap,自己看一下。解决办法在命令框里执行下面这条语句:sc config ...
2019-11-12 09:25:28
16001
原创 python字典中通过值找键(包含:嵌套字典查找,一键对多值的情况)
直接上代码。province = {"山东":{"济南":["槐荫区","历下区"],"青岛":["黄岛区","城阳区"],"济宁":"兖州区"},"辽宁":"沈阳","吉林":"长春"}print(type(province))char = input("你想查询" "\n1、市:" "\/2、县/区:")if char == '1': city = in...
2019-09-23 11:05:31
11950
转载 列表到每个键有多个值的字典转换
列表到每个键有多个值的字典转换我有一个Python列表,其中包含键/值对:`l=[ [1, 'A'], [1, 'B'], [2, 'C'] ]`我想将列表转换为字典,其中每个键的多个值将聚合到一个元组中:{ 1:(‘A’, ‘B’), 2:(‘C’,) }迭代解决方案是微不足道的:`l=[ [1, 'A'], [1, 'B'], [2, 'C'] ]d={}for pair i...
2019-09-22 21:35:01
556
原创 sql server在使用存储过程中常见问题总结一:
阅读本篇博客你可以get到以下内容:一、SQL存储过程中 SET ANSI_NULLS ON 和 SET QUOTED_IDENTIFIER ON的作用和详解二、关于SQL的四种连接-左外连接、右外连接、内连接、全连接三、在实际应用存储过程时对于isnull()和sum()的使用。四、需要对数据进行分类排序,row_number() over的基本用法五、截取字符串指定长度:left()函数和ri...
2019-07-31 15:18:33
1194
1
原创 SQL SERVER中游标的使用实例+详解(涉及SQL中字符串拼接)
下面这个实例主要针对如下需求,例如 有“山东省 济南市 济南市历下区” 这三级,要改成“山东省济南市 山东省济南市历下区” 需要把全国各个地市前面都加上省份。这是用到的相关数据表:https://pan.baidu.com/s/1KsRITT88EABGOEufthA6zA不知道如何导出表结构和表数据的同学请看:https://blog.csdn.net/zhuyin6...
2019-07-31 14:51:21
998
原创 SQLServer 导出表结构和表数据
1.打开sqlserver连接成功后,选择需要导出表的数据库–任务—生成脚本2.选择:生成脚本窗口–简介(某些可能关闭该页面的,可以省略该步骤),点击下一步3.生成脚本窗口–选择对象(可以选择导出整个数据库,也可以选择导出某些表)4.设置脚本编写选项–选择高级5.点击完高级以后,弹出–高级脚本编写选项,要编写的脚本的数据类型–架构和数据(该步很重要)–选择完点击确定–点击下一步...
2019-07-31 14:33:40
6035
原创 SQL Server 跨服务器不同数据库之间复制表的数据(非常简单)
我用的sql server版本是2017,不保证每个版本都有效果。第一步:先登陆需要复制表的所在数据库,找到这张表。表比较多的话就通过筛选器筛选出来。查看表中二代数据让数据库创建建表语句,选择哪个都可以。连接另一个数据库。新建查询把刚才的建表语句复制进来(如果刚才保存的是sql文件,直接打开即可),之后更改下建表语句中上一个数据库标识,改成当前数据库的。之后执行语句。执...
2019-07-03 18:30:03
3222
原创 JavaScript连接sql server数据库实例+讲解------连接测试篇
本实例参考了下此位博主的内容:https://www.cnblogs.com/carekee/articles/5829656.html因为我不会直接在控制台中调试,就把连接数据库的代码加进了HTML中。具体如下:<!DOCTYPE html><head> <title>测试js访问数据库</title></head>...
2019-06-14 15:23:23
18945
4
转载 冒泡排序的基本思想
1.冒泡排序的基本思想 冒泡排序是交换排序中一种简单的排序方法。它的基本思想是对所有相邻记录的关键字值进行比效,如果是逆顺(a[j]>a[j+1]),则将其交换,最终达到有序化;其处理过程为:(1)将整个待排序的记录序列划分成有序区和无序区,初始状态有序区为空,无序区包括所有待排序的记录。(2)对无序区从前向后依次将相邻记录的关键字进行比较,若逆序将其交换,从而使得关键字值小的记...
2019-06-07 21:18:28
15371
原创 通过存储过程解析XML文件保存到数据库
其实整个过程我也是一知半解,比着组里的一个老哥已经实现过的接口,照葫芦画瓢写的…对于出现的问题做一下小小的总结,对各位看官作用可能不大,算我自己的一个工作记录吧。XML文件如下这里的文件名为 IN_PUT-CLASSSETCODE = ‘EKPO’.<?xml version="1.0" encoding="utf-16" ?> <xmldata> ...
2019-05-31 19:56:09
546
转载 python 导入模块的两种方式与导入路径问题
导入模块的两种方法:import + 模块名这个方式导入的模块,调用里面的函数的时候,要用 模块名.函数如果导入的是包里面的 就用 import 包.模块使用的时候用 包.模块.内容from 模块名 import 功能这个方式是精准导入模块里面的函数,调用的时候直接用函数名来调用,不需要再写模块名了from 模块名 import *导入模块中__all__变量参数中...
2019-05-18 20:30:40
2216
原创 SQL server 利用存储过程查询任意字段的信息
创建如下数据表CREATE TABLE EMP(EMPNO INT PRIMARY KEY, -- 员工编号ENAME VARCHAR(10), -- 员工姓名JOB VARCHAR(9), -- 员工工作MGR INT, -- 员工直属领导编号HIREDATE DATE, -- 入职时间SAL FLOAT, -- 工资COMM FLOAT, -- 奖金DEPTNO INT,...
2019-05-17 17:38:56
3647
原创 python中for _ in range () 中'_'的意思
python中for _ in range () 中’_'的意思以斐波那契数列为例a = 0b = 1for _ in range(20): (a, b) = (b, a + b) print(a, end=' ')其中’_’ 是一个循环标志,也可以用i,j 等其他字母代替,下面的循环中不会用到,起到的是循环此数的作用就像C语言中for (int i ;i<1...
2019-05-17 11:21:43
93797
5
原创 C语言二维数组B[m][n]从做到右,每一行从左至右递增排列,每一列从上至下递增排列的查找方法,时间复杂度为O(m+n)
从网上看到的代码,自己实现了一下。主要是利用好数组顺序排列这个规律,从右上角开始查找,矩阵是有序的,从右上角来看,向下数字递增,向左数字递增,因此从右上角开始查找:当要查找数字比右上角数字小时,左移;要查找数字比右上角数字大时,下移。同理,也可以从左下角开始查找#include<stdio.h> int main(){ int y=0; int m=0,n=0; ...
2019-03-23 16:10:54
1156
原创 C语言链表实现简单的学生信息管理系统
C语言链表实现增删查改#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct student{ char num[20]; char name[20]; int Chanese; int English; int Math; struct student *n...
2019-03-23 15:55:59
5886
5
转载 C语言计算指定日期后n天是什么日期和计算指定日期在一年中的天数
话不多说 直接上代码#include<stdio.h>#include<stdlib.h> int main(){ int year,month,day; int leapyear=0; int daytime=0; int sum; int index=0; static int month_date[12]={31,28,3...
2019-03-23 15:51:19
5184
转载 C语言指针数组和数组指针--精讲
一、指针数组和数组指针的内存布局初学者总是分不出指针数组与数组指针的区别。其实很好理解:指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。数组指针:首先它是一个指针,它指向一个数组。在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道。它是“指向数组的指针”的简称。下面到底哪个是数组指针,哪个是指针数组呢:A)...
2019-03-10 17:12:01
10492
4
空空如也
阿里面试题:100W个随机数求和,用多线程解
2021-04-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人