- 博客(154)
- 收藏
- 关注
转载 HashMap HashTable ConcurrentHashMap的原理与区别
HashMap底层数组+链表实现,可以存储null健和null值,线程不安全初始size=16,扩容newsize=oldsiez*2,size一定为2的n次幂扩容针对整个Map,每次扩容时,原来数组中的元素依次重新计算存放位置,并重新插入插入元素后才判断该不该扩容,有可能无效扩容(插入后如果扩容,如果没有再次插入,就会产生无效扩容)当Map中元素总数超过ENtry数组的75%,触发扩容操作,为了减少链表长度,元素分配更均匀计算index的方法:index=hash&(tab.leng
2021-04-15 11:16:47
413
转载 老生常谈,HashMap的死循环
老生常谈,HashMap的死循环问题原因分析实现案例分析总结问题最近的几次面试中,我都问了是否了解HashMap在并发使用时可能发生死循环,导致cpu100%,结果让我很意外,都表示不知道有这样的问题,让我意外的是面试者的工作年限都不短。由于HashMap并非是线程安全的,所以在高并发的情况下必然会出现问题,这是一个普遍的问题,虽然网上分析的文章很多,还是觉得有必须写一篇文章,让关注我公众号的同学能够意识到这个问题,并了解这个死循环是如何产生的。如果是在单线程下使用HashMap,自然是没有问题的,
2021-04-12 15:43:27
353
原创 集合的使用
设计一个数据库系统要求:1)addRecord(userId, projectId, price)表示用户userId 给工程 projectId 投标 price。若记录中有 userId 给工程ProjectId 投标,则不加入该记录2)updateRecord(userId, projectId, price)表示更新用户userId 给工程 projectId 的投标price。若记录中没有 userId 给工程 projectId的投标,则不更新3)removeRecore(userId,
2020-08-17 15:26:13
401
原创 Eureka(一)服务注册与发现
什么是服务治理Spring Cloud封装了Netfix公司开发的Eureka模块来实现服务治理在传统的rpc远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务与服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。什么是服务注册与发现Eureka采用了CS的设计架构,Eureka Server作为服务注册功能的服务器,它是服务注册中心,而系统中的其他微服务,使用Eureka的客户端连接到Eureka Server并维持心跳连接,
2020-07-13 16:36:09
340
转载 java常用集合List、Set、Map区别及适用场景
这里写目录标题List、Set、Map区别及适用场景ArrayList与LinkedList的区别及适用场景ArrayList与Vector的区别及适用场景HashSe与TreeSet的区别适用场景HashMap、TreeMap、HashTable的区别及适用场景QueueList、Set、Map区别及适用场景List、Set都继承自Collection接口,Map不是List:元素放入有序,可重复,可通过迭代或下标获取元素。Set:元素放入无序,不可重复,重复元素会覆盖掉,可通过迭代获取元素,无
2020-05-21 14:56:44
405
转载 JEXL表达式引擎的使用
JEXL表达式引擎简单介绍如何使用简单介绍JEXL全称是Java表达式语言(Java Expression Language),简单地说,它可以配合Java程序运算一些简单的表达式。具体可以识别哪些表达式,其中包含最基本的加减乘除、大于小于等于、与或非、按位与、按位或、按位异或、按位补码,除此之外还可以调用Java程序中的方法,比如判断一个字符串是否包含某一个字符,就可以调用String的contains()方法来判断,在下文中会给出这样的示例。官方文档:http://commons.apache.or
2020-05-20 15:57:45
2711
转载 本机IP地址、 127.0.0.1 和 0.0.0.0 的区别
概述总体来讲,127.0.0.1是本机的环回地址,0.0.0.0代表本机上任何IP地址。下面分别详细讲解环回地址127.0.0.1严格来说127.0.0.1只是环回地址之一。所有127.x.x.x都是环回地址。从127.0.0.0到127.255.255.255均予以保留。此地址块中的任何地址都将环回到本地主机中。此地址块中的任何地址都绝不会出现在任何网络中。环回地址:所有发往该类地址的数...
2020-02-04 18:02:42
5573
1
转载 内省Introspector
概念内省Introspector是Java语言对JavaBean类属性、时间的一种缺省处理方法。JavaBean是一种特殊的类,主要用于传递数据信息,这种类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。如果在两个模块之间传递信息,可以将信息封装进JavaBean中,这种对象称为“值对象”(Value Object)或“VO”。方法比较少,这些信息存储在类的私有变量中,通过set()...
2020-02-04 12:09:39
252
原创 基于XML的IOC案例
目录- Spring中IOC的案例 案例:使用xml方式和注解方式实现单表的CRUD操作 持久层技术选择:dbutils- 改造基于注解的IOC案例,使用纯注解的方式实现 spring的一些新注解的使用- Spring和Juint的整合...
2020-01-22 17:39:15
260
原创 Spring中的依赖注入(二)
目录- Spring中基于注解的IOC以及IOC的案例- 案例:使用xml方式和注解方式实现单表的CRUD操作 持久层技术选择:dbutils- 改造基于注解的IOC案例,使用纯注解的方式实现 spring的一些新注解的使用- Spring和Juint的整合1. 基于注解的IOC配置1.1 明确学习基于注解的IOC配置,注解配置和xml配置实现的功能是一样的,都是降低...
2020-01-06 21:55:53
250
原创 Spring中的依赖注入(一)
spring中的依赖注入Dependency InjectionIOC的作用:削减/降低程序间的依赖关系/耦合。依赖关系的管理都交给了spring来维护依赖关系:在当前类中要使用的其他类的对象,由spring为我们提供,我们只需要在配置文件中说明依赖关系的维护称之为:依赖注入能注入的数据有三类基本类型和String其他bean类型(在配置文件中或者注解配置过的bean)复杂类型(...
2020-01-03 20:35:37
319
原创 Spring对Bean的管理细节
目录- 创建bean的三种方式- bean对象的作用范围- bean对象的生命周期项目结构AccountServiceImpl.javapackage com.itheima.service.impl;import com.itheima.service.IAccountService;/** * 账户的业务层实现类 */public class AccountS...
2020-01-03 19:19:48
297
原创 使用Spring中的IOC解决程序耦合
概念IOC——Inversion of Control,即控制反转,不是什么技术,而实一种设计思想。在Java开发中,IOC意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。IOC包括依赖注入(Dependency Injection)和依赖查找(Dependency Lookup)。谁控制谁,控制什么:传统Java SE程序涉及,我们直接在对象内部通过new进行创建对...
2020-01-02 17:10:47
360
1
转载 调试利器-SSH隧道
在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到源码修改后的运行结果。但当涉及到需要调用微信接口时,由于不和你在同一个局域网中的用户是无法访问你的本地开发机的,就必须把修改后的代码重新发布到线上域名所在的服务器才能去验证结果。每次修改都重新发布很繁琐也很浪费时间。本文将教你如何通过 SSH 隧道把本地服务映...
2019-12-31 20:23:18
3024
转载 如何优雅的将Object转换成List
避免Unchecked cast‘java.lang.Object’ to ‘java.util.List<java.lang.String>’java中如果需要将一个object转成list,大部分人会直接使用强制类型转换:(List< String>) obj这样。这样强制转换编译会提示Unchecked cast: ‘java.lang.Object’ to ‘j...
2019-12-26 14:33:25
48734
5
转载 授权操作AccessController.doPrivileged()
https://benjaminwhx.com/2018/06/19/AccessController-doPrivileged/
2019-12-20 16:00:02
511
转载 微服务架构基础之API网关
在微服务架构中,API网关是核心的基础服务之一。在微服务流行之前,API网关已经在很多架构中扮演重要的角色,尤其是开放平台,此时的API网关是系统的统一入口,肩负了很多的业务责任,比如限流、计费等功能。而在微服务架构中,API网关可能往往需要兼顾内部和外部的所有微服务,承担更多的职责。什么是API网关简单说,API网关是微服务架构中的指路人与守护者。首先,她会提供最基本的路由服务,将调用转发到...
2019-12-17 17:33:25
702
转载 MapReduce介绍
Hadoop解决大规模数据分布式计算的方案是MapReduce。MapReduce既是一个编程模型,又是一个计算框架。也就是说,开发人员必须基于MapoReduce编程模型进行编程开发,然后将程序通过MapReduce计算框架分发到Hadoop集群中运行。我们先看一下作为编程模型的MapReduce。MapReduce编程模型MapReduce是一种非常简单又非常强大的编程模型。简单在于其编...
2019-12-07 10:26:57
266
翻译 Azkaban:使用篇
简介Azkaban是在Linkedln上创建的用于运行Hadoop作业的批处理工作流作业调度系统。通过作业之间的依赖性完成工作流程,并可以提供易于使用的web用户界面来维护和跟踪用户的工作流程。特点与任何版本的Hadoop兼容(oozie依赖于Hadoop版本)易于使用的Web UI界面(oozie的Web界面功能较少)Web界面支持工作流上传操作(oozie界面没有)工作流定时调度...
2019-12-07 10:26:21
1666
原创 hadoop文件系统HDFS
是什么?Hadoop Distributed File System,简称HDFS,是一个分布式文件系统。有一定高度的容錯性,而且提供了高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS是海量数据存储解决方案HDFS设计之初就是针对超大文件的存储的,小文件不会提高访问和存储速度,反而会降低;其次它采用了最高效的访问模式,也就是经常说的流式数据访问,特点就是一次写入多次读取;再有就是它运...
2019-12-05 22:14:40
406
翻译 java中Optional对象和JPA实体对应方法
介绍本文讨论有关将Java1.8Optional与JPA和Hibernate一起使用的问题Java 1.8 引入了java.util.Optional可能包含或不包含特定值的容器对象,结合使用Optional和stream非常方便。因此,您可能希望将某些可为空的实体属性公开为Optional。本文演示 了再实体属性上使用Optional的注意事项。后续补充https://vladmiha...
2019-12-03 10:16:46
3076
转载 java中的Optional类避免空指针异常
空指针引用一个null引用的危害。首先创建一个类Computer,如图所示:调用如下代码:String version = computer.getSoundcard().getUSB().getVersion();如果计算机没有声卡,那么调用getSoundCard()方法肯定会报NullPointerException。怎么样避免?设计灵感Java8引入了一个新类叫做java...
2019-12-03 10:09:44
509
原创 SQL语言的四种类型
DDL(Data Definition Languange)数据库模式定义语言DDL(Data Definition Language),是用于描述数据库中要存储的现实世界实体的语言。一个数据库模式包含该数据库中所有实体的描述定义。常见的DDL语句CREATE DATABASE创建新数据库ALTER DATABASE修改数据库CREATE TABLE创建新表...
2019-11-30 16:06:28
580
转载 java反射詳解
java反射機制http://tengj.top/2016/04/28/javareflect/https://www.cnblogs.com/chanshuyi/p/head_first_of_reflection.htmlgetResource()至于getResouce()方法的参数,你以class为出发点,再结合相对路径的概念,就可以准确地定位资源文件了,至于它的根目录嘛,你用不同...
2019-11-29 15:54:19
160
原创 Java漏洞修复:Codedex Unsafe Reflection
写个工具方法:然后对class name进行归一化处理:对于ascii字符和中文字符以及非合成字符,归一化后保持不变:
2019-11-28 20:24:34
4390
原创 ClassLoader.loadClass()与Class.forName()的区别
ClassLoader.loadClass()与Class.forName()大家都知道是反射用来构造类的方法,但是他们的用法还是有一定区别的。在讲区别之前,我觉得很有必要把类的加载过程在此整理一下。类的加载过程在java中,类装载器把一个类装入java虚拟机中,要经过三个步骤来完成:装载、链接、初始化。其中,链接又可以分为校验、准备和解析三步,除了解析之外,其他步骤是严格按照顺序完成的,各个...
2019-11-28 09:53:13
243
转载 Java反序列化漏洞的发现和修复
http://admin.code2sec.com/ji-yi-ci-javafan-xu-lie-hua-lou-dong-de-fa-xian-he-xiu-fu.html
2019-11-13 20:30:50
438
转载 java获取当前路径的几种方法
1、利用System.getProperty()函数获取当前路径:System.out.println(System.getProperty(“user.dir”));//user.dir指定了当前的路径2、使用File提供的函数获取当前路径:File directory = new File("");//设定为当前文件夹try{System.out.println(directory....
2019-10-16 20:44:03
667
原创 数字转中文输出
#include <iostream>#include <string>using namespace std;string unite[5]={"","十","百","千","万"}; //单位string num[10]={"零","一","二","三","四","五","六","七","八","九"}; //一个汉字占两个字节,另外再加一个'\0'字符.st...
2019-10-12 20:21:06
279
原创 判断是否是工作日,不考虑节假日
#include<stdio.h>int main(){ int date,year,month,day; scanf("%d",&date); year=date/10000; month=date%10000/100; day=date%100; int weekAfter[7] = {0,1,2,3,4,5,6}; int weekBef...
2019-10-11 20:21:04
767
原创 螺旋队列和螺旋三角
螺旋队列内螺旋队列(顺时针)分析codeimport java.util.Scanner;/** * 〈一句话功能简述〉<br> * 〈内螺旋队列(顺时针)〉 * 21 22…… * 20 7 8 9 10 * 19 6 1 2 11 * 18 5 4 3 12 * 17 16 15 14 13 * * 输入 * 输入包含多组测试,每组测试...
2019-10-11 15:14:04
1007
1
原创 解决IDEA 2018 3.2打开项目不能正常显示项目目录
新版IDEA更改了识别项目的规则1、关闭IDEA,删除.idea文件夹,再按照常规方式打开项目2、重新新建项目,将原项目文件夹及源代码文件复制进新工程即可...
2019-09-24 11:53:08
2165
原创 java多线程:结合多线程交替打印10次abc实例,对wait/notify使用的彻底理解图解
Object a = new Object();Object b = new Object();Object c = new Object();1、a.notifyAll() 唤醒调用a.wait()方法的线程2、c.wait() 释放c锁,使当前线程即pa线程而非pc线程休眠3、如果要唤醒线程pa,则需要使用c.notifyAll()唤醒,如果某个线程里面使用了c.notifyAll(...
2019-09-21 12:11:35
311
原创 矩阵逆序打印
#include <iostream>#include <vector>using namespace std;vector<int> printMatrix(vector<vector<int> > matrix) { int row = matrix.size(); int col = matr...
2019-09-16 18:31:31
674
原创 Pycharm调用模块后字体变灰色
解决方法:File->invalidate caches/restart选项,点击即可如果不行使用:右击Pychram中项目名->Mark Directory as ->Resource root
2019-09-06 20:20:02
2171
2
转载 无向最小环
题目分析:Floyd 算法保证了最外层循环到 k 时所有顶点间已求得以 0…k-1 为中间点的最短路径。一个环至少有3个顶点,设某环编号最大的顶点为 L ,在环中直接与之相连的两个顶点编号分别为 M 和 N (M,N < L),则最大编号为 L 的最小环长度即为 Graph(M,L) + Graph(N,L) + Dist(M,N) ,其中 Dist(M,N) 表示以 0…L-1 号顶点为...
2019-09-04 20:19:14
192
原创 AUC计算
import numpy as npimport sysfrom sklearn.metrics import roc_curvefrom sklearn.metrics import aucdef auc_calculate(labels,preds,n_bins=100):postive_len = sum(labels)negative_len = len(labels) - p...
2019-09-04 20:11:29
476
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人