- 博客(17)
- 收藏
- 关注
原创 java线程随笔
为什么要使用线程池?1. 降低资源消耗:通过重用已经创建的线程来降低线程创建和销毁的消耗2. 提高响应速度:任务到达时不需要等待线程创建就可以立即执行3. 提高线程的可管理性:线程池可以统一管理、分配、调优和监控线程池可以通过ThreadPoolExecutor来创建,构造函数如下:public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueu
2021-06-23 14:54:44
110
转载 JVM相关知识记录
Java虚拟机在运行时,会把内存空间分为若干个区域,根据《Java虚拟机规范(Java SE 7 版)》的规定,Java虚拟机所管理的内存区域分为如下部分:方法区、堆内存、虚拟机栈、本地方法栈、程序计数器。1.方法区方法区主要用于存储虚拟机加载的类信息、常量、静态变量,以及编译器编译后的代码等数据。在jdk1.7及其之前,方法区是堆的一个“逻辑部分”(一片连续的堆空间),但为了与堆做区分,方法区还有个名字叫“非堆”,也有人用“永久代”(HotSpot对方法区的实现方法)来表示方法区。从jdk1.7已经
2021-02-19 15:32:07
94
原创 HashMap学习笔记
HashMap线程不安全体现在会造成死循环、数据丢失、数据覆盖这些问题。其中死循环和数据丢失是在JDK1.7中出现的问题,在JDK1.8中已经得到解决,然而1.8中仍会有数据覆盖这样的问题。JDK1.7的Entry<K,V>(JDK1.8改成了 Node):static class Entry<K,V> implements Map.Entry<K,V> {final K key;V value;Entry<K,V> next;int hash;/
2020-07-30 14:20:40
157
原创 分布式锁简单随笔
前言:防止看完忘记,做一点小笔记方便自己通过这些点回忆起来。为何高并发会导致数据库数据出现问题?一般程序的更新操作分为两个步骤,先查询再更新,查询和更新之间存在一定的业务,如:增加一条订单信息。高并发情况下,可能会存在1线程还未更新,2线程查库的数据与1相同,之后并行更新导致库存虽然为0,但产生多于原库存数量的订单(也就是超卖了)。单机应用面对高并发使用lock,sysnc就可以保证不会超卖,但分布式系统会有问题。如何实现分布式锁?常见的三种方式:数据库分布式锁,zk分布式锁,redis分布式锁。
2020-05-25 09:00:29
167
原创 SpringBoot学习---Eureka的入门
Eureka的入门demo搭建遇到的坑SpringBoot和SpringCloud的版本一定要选择相对应的,且版本最好选择稳定的,否则项目会出现未知的异常。注册中心需设置不向注册中心注册自己,不去检索其它服务。将自身信息注册到Eureka中的参数可能会由于版本的不同导致参数的书写规则不同(即:eureka.client.service-url.defaultZone)。特在此记录,尤其...
2019-11-14 17:19:49
153
原创 ElasticSearch在linux中环境搭建
一、环境准备CentOS(版本需大于7 如:CentOS-7-x86_64-DVD-1810.iso)Java(版本需大于1.8 如:jdk-8u131-linux-x64.tar.gz)ES安装包(如: elasticsearch-6.1.1.tar.gz)二、ES安装CentOS和JDK自行安装好~ ~~ 下面直接安装ElasticSearch:1.使用如下命令下载Ela...
2019-10-12 14:40:38
528
原创 工作中遇到的漏洞——xxxx网
CSRFCSRF(Cross-site request forgery):跨站请求伪造。简单地说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并执行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去执行。这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不...
2019-09-25 16:16:05
929
原创 ElasticSearch调研
es是什么?ElasticSearch简写es,es是一个高扩展、开源的全文检索和分析引擎,它可以准实时地快速存储、搜索、分析海量的数据。es是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。es使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。...
2019-09-24 11:04:44
369
原创 Linux环境安装jdk和redis
Linux环境安装redis1.安装JDK8(已装跳过)第一步:创建jdk安装目录(该/usr/local/src 目录是空的,最好把我们自己下载的放到这,容易区分) [root@localhost jdk]# mkdir -p /usr/local/src/jdk第二步:查看安装程序 [root@localhost jdk]# rpm -qa | grep -i jdk ...
2019-07-15 10:39:52
634
原创 《重构:改善既有代码的设计》- 学习笔记
第一章 借用一个影片出租店的程序来演示重构的过程。customer表示一个顾客:name (姓名),rentals (rental集合,租用信息),statement(计算租用金额方法)rental表示某个顾客租了一部影片:movie (影片,Movie对象),daysRented(租用天数)movie表示电影:title (电影名称),priceCode(电影类型),CHILDRENs =...
2019-07-12 16:03:40
193
原创 六大原则
六大原则单一职责原则不管干啥,我都只干一件事情,比如,你叫我去买菜,我就只去买菜,叫我顺便丢垃圾我不会干!范围:接口和方法必须保证单一职责,类就不必保证,只要符合业务就OK了。目的:提高代码的可阅读性,可扩展性,可维护性。里氏替换原则类似于父子,儿子必须会父亲会的技能,而且不能在父亲的技能上做创新(不能覆盖重写)。依赖倒置原则1.不应该依赖低层模块,两者都应该依赖其抽象(模块间的依...
2019-07-12 16:00:43
160
原创 Java前后端时间格式的转换
背景在web项目中,前端的时间展示一般是一个字符串类型(String),但是后端的时间类型则一般为日期类型(Date),在前端与后端交互的过程中,经常会涉及到String类型时间和Date类型时间的相互转换,现将两者之间的相互转换做一个小结:前端Date->String的转换。前端一般可以使用时间控件完成将Date类型的时间转换为String类型。例如:easyUI由于本...
2019-03-11 10:54:18
2296
原创 git 相关命令
把本地项目上传到远程仓库中:把项目所在目录变成git可以管理的仓库:git init把项目中的文件添加到暂存区:git add user.java(添加user.java文件);git add . (添加项目中的所有文件)把暂存区文件提交到本地仓库:git commit -m "注释"查看文件的状态:git status将本地仓库与远程仓库关联:git remote add o...
2019-03-04 09:56:12
306
转载 spring中context:component-scan配置
通常情况下我们在创建spring项目的时候在xml配置文件中都会配置这个标签,配置完这个标签后,spring就会去自动扫描base-package对应的路径或者该路径的子包下面的java文件,如果扫描到文件中带有@Service,@Component,@Repository,@Controller等这些注解的类,则把这些类注册为bean注:在注解后加上例如@Component(value=”...
2019-02-25 18:55:52
443
转载 spring中context:annotation-config配置
spring中<context:annotation-config/>配置的作用,现记录如下:<context:annotation-config/>的作用是向Spring容器注册以下四个BeanPostProcessor:AutowiredAnnotationBeanPostProcessorCommonAnnotationBeanPostProcessorP...
2019-02-25 18:49:12
452
原创 JSON在后端和前端的使用
JSON定义JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪,但是JavaScript很容易解释它,而且 JSON 可以表示比"名称 ...
2019-02-22 19:33:20
1211
原创 入职一个月的总结——实习生
总结无非是回顾自己过去一段时间的所做所为以及自己的对此的看法,计划未来一段时间自己该如何做,调整好自己的路线,不好的地方要改,好的地方要坚持,制定好计划,使自己不断进步。 刚到公司实习的前两个礼拜 入职报到,领设备,签实习协议,分配位置,然后自己组装好设备,这些都没什么可说的。然后分配一个老师带我,接着给一些文档让我自己看,自己学,其实我的学习方式是先看视屏学习一遍,然后再看文档理解...
2018-11-27 22:49:12
1233
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人