![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
_双眸
GitHub:https://github.com/BothEyes1993
【所有demo地址】
1
2
展开
-
查询电脑的逻辑核心数,不同业务下如何配置线程池
逻辑核心数一般百度如何获取电脑的逻辑核心数,都会出现这段代码:Runtime.getRuntime().availableProcessors()然而,问题在于Runtime.getRuntime().availableProcessors()也并非都能返回你所期望的数值。比如说,在我的双核1-2-1机器上,它返回的是2,这是对的。不过在我的1-4-2(1个物理处理器-4个核-每个核2个超线程=也就是通常说的4核8线程)机器 上,也就是一个CPU插槽,4核,每个核2个超线程,这样的话会返回8。不过我原创 2020-06-02 12:37:26 · 357 阅读 · 0 评论 -
Java乐观锁与悲观锁介绍和CAS的实现方式以及jvm内存分配方式
一: 首先介绍一些乐观锁与悲观锁:悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。再比如Java里面的同步原语synchronized关键字的实现也是悲观锁。乐观锁:顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等转载 2020-05-23 13:25:38 · 254 阅读 · 0 评论 -
Java爬虫Ins博主所有帖子的点赞和评论导出excel
前言某天朋友说,能不能帮忙扒下ins的博主帖子,要所有帖子的点赞和评论,我本来准备让会python的同事写的,最后还是自己顺手写了,本来一开始准备用nodejs或者js写的,想着前端本地测试代理和导excel比较麻烦还是用Java吧,正好好久没写Java了,就当回忆一波吧。注意点ss梯子大家自己准备好,不然连不上ins的,还有ins的一些反扒规则等等我就不一一列举了,下面说下大概的几个点:instagram的首页数据是服务端渲染的,所以首页出现的11或12条数据是以html中的一个json结原创 2020-05-14 15:06:41 · 1468 阅读 · 0 评论 -
Mybatis学习笔记汇总(包括源码和jar包)
博客整理Mybatis学习笔记(一)——对原生jdbc中问题的总结Mybatis学习笔记(二)——Mybatis框架Mybatis学习笔记(三)——入门程序MyBatis学习笔记(四)——入门程序(续)Mybatis学习笔记(五)——DAO开发Mybatis学习笔记(六)——配置文件Mybatis学习笔记(七)——输入输出映射Mybatis学习笔记(八)——动态SQLMybati...转载 2020-03-07 13:10:02 · 157 阅读 · 0 评论 -
java项目部署Linux服务器几种启动方式总结经验
一:两种部署包:部署之前先说下两种包,java项目部署到服务器一般有用war包的,也有用jar包的,微服务spring-cloud普及后大部分打包都是jar,部署之前先搞清楚自己要打war包还是jar包,下面小介绍两种包的区别:spring boot既可以打成war发布,也可以找成jar包发布。说一下区别:jar包:直接通过内置tomcat运行,不需要额外安装tomcat。如需修改内置tom...原创 2020-01-21 15:41:57 · 1838 阅读 · 0 评论 -
Nginx下的location,upstream,rewrite 和 proxy_pass使用总计大全
一 、 location: 顾名思义–>地址,也叫路由。nginx服务器非常核心的配置,一般nginx运维人员在修改nginx配置时,大部分也是围绕着location这个配置进行修改。下面看一下一个简单的location配置:location / { root home/; index index.html;}这个配置表示任何一个路径访问nginx服务...原创 2020-01-12 17:46:28 · 919 阅读 · 0 评论 -
SQL注入和Mybatis预编译防止SQL注入
什么是SQL注入??所谓SQL注入,就是通过把SQL命令插入到Web表单提交或页面请求url的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。实战举例有个登陆框如下:可以看到除了...原创 2019-12-31 19:24:34 · 1136 阅读 · 1 评论 -
关于前后端写入Cookie时domain的一个问题
1.1. 前端先假设有如下setCookie方法:function setCookie(name, value, day, path, domain){ day = day || 30; path = path || '/'; var str = name + '=' + value + '; '; if(day) str += 'expires=' + new Date(Date....原创 2019-11-12 15:53:22 · 2984 阅读 · 0 评论 -
spring的@Transactional注解详细用法
概述事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性。Spring Framework对事务管理提供了一致的抽象,其特点如下:为不同的事务API提供一致的编程模型,比如JTA(Java Transaction API), JDBC,Hibernate, JPA(Java Persistence API和JDO(Java Data Objects)支持...原创 2019-06-23 16:26:50 · 154 阅读 · 0 评论 -
SpringBoot + SpringCloud的爬坑之旅
1,application.yaml中配置没有生效问题解决如果配置文件确认没有错误但是没有生效首先是要到编译目录去查看是否被编译过去了,如果没有,请先将项目clean在重启但是idea启动项目时也会先build,又有可能配置文件没有被编译过去,真实坑爹!另外,yaml文件中的那些坑:(1)冒号:后面必须有空格,下级属性缩进一格(只支持空格不支持制表符tab)(2)保证不能有重复的一级节点...原创 2019-06-27 14:37:18 · 248 阅读 · 0 评论 -
springMVC的自定义annotation(@Retention@Target)详解
自定义注解:使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口,由编译程序自动完成其他细节。在定义注解时,不能继承其他的注解或接口。@interface用来声明一个注解,其中的每一个方法实际上是声明了一个配置参数。方法的名称就是参数的名称,返回值类型就是参数的类型(返回值类型只能是基本类型、Class、String、enum)。可以...原创 2019-06-24 17:10:47 · 408 阅读 · 0 评论 -
@RequestParam和@RequestBody和@PathVariable用法小结
@RequestParam使用@RequestParam接收前段参数比较方便,前端传参的URL:url = “${ctx}/main/mm/am/edit?Id=${Id}&name=${name}”后端使用集合来接受参数,灵活性较好,如果url中没有对参数赋key值,后端在接收时,会根据参数值的类型附,赋一个初始key(String、long ……)@RequestMappin...原创 2019-07-03 17:13:42 · 1623 阅读 · 0 评论 -
spring-boot+spring-cloud+maven-module 一个 maven多模块的微服务架构模版
spring-boot-cloud-modulespring-boot+spring-cloud+maven-module 一个 maven多模块的微服务架构模版。新手上路的绝佳模版,只有必要的配置文件和核心jar包,没有多余的其他增量配置,所有的配置和注解都有做解释的注解描述,方便新手一眼就懂,下载后基本上可以直接基于demo开发自己的项目1,按照业务划分多maven模块:2,spri...原创 2019-06-29 16:22:01 · 1449 阅读 · 0 评论 -
Java中的BigDecimal类和int和Integer总结
前言我们都知道浮点型变量在进行计算的时候会出现丢失精度的问题。如下一段代码:System.out.println(0.05 + 0.01);System.out.println(1.0 - 0.42);System.out.println(4.015 * 100);System.out.println(123.3 / 100);输出:0.0600000000000000050.5...原创 2019-07-07 14:49:43 · 8494 阅读 · 0 评论 -
java 实现仿照微信抢红包算法,实测结果基本和微信吻合,附demo
实现拼手气红包算法,有以下几个需要注意的地方:抢红包的期望收益应与先后顺序无关保证每个用户至少能抢到一个预设的最小金额,人民币红包设置的最小金额一般是0.01元,如果需要发其他货币类型的红包,比如区块链货币或者积分,需要自定义一个最小金额。所有抢红包的人领取的子红包的金额之和加起来,等于发红包的人发出的总红包的金额。下面实现的方式是一次生成所有的子红包,让用户按顺序领取。也可以每领取一个...原创 2019-07-12 12:03:26 · 3064 阅读 · 2 评论 -
解决:com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure(真实有效)
数据库连接失败一、例如我在SpringBoot项目中使用了阿里的数据库连接池Driud。有次在启动的时候,会报这样的错:Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failureThe last packet successfully received from the...转载 2019-06-21 21:33:09 · 14628 阅读 · 0 评论 -
数据库连接池Druid的介绍,配置分析对比总结
Druid的简介Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。Druid是阿里巴巴开发的号称为监控而生的数据库连接池!Druid的功能1、替换D...转载 2019-06-20 11:47:33 · 1410 阅读 · 0 评论 -
spring下应用@Resource, @Autowired 和 @Inject注解进行依赖注入的差异
为了探寻 ‘@Resource’, ‘@Autowired’, 和‘@Inject’如何解决依赖注入中的问题,我创建了一个“Party”接口,和它的两个实现类“Person”,“Organization”。这样我就可以在注入Bean的时候不必使用具体类型(指使用接口类型即可)。这样做也方便我研究当一个接口有多个实现类与之匹配的时候Spring是如何解决依赖注入的不确定性的。public int...原创 2018-12-10 15:41:52 · 260 阅读 · 0 评论 -
springMVC @Component-@Resource-@Repository-@Service-@Controller的区别和理解
作用:@Component------------------------泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。(Component-------成分; 组分; 零件)@Resource------------------------(资源)@Autowired-----------------------(自动绑定)@Repository-------------...原创 2018-12-10 15:59:48 · 233 阅读 · 0 评论 -
在Maven仓库中添加Oracle JDBC驱动
由于Oracle授权问题,Maven3不提供Oracle JDBC driver,为了在Maven项目中应用Oracle JDBC driver,必须手动添加到本地仓库。一.首先要得到Oracle JDBC Driver1.通过Oracle官方网站下载相应版本:http://www.oracle.com/technetwork/database/features/jdbc/index-0912...原创 2018-12-10 16:06:59 · 124 阅读 · 0 评论 -
SSM三大框架整合详细教程
使用 SSM ( Spring 、 SpringMVC 和 Mybatis )已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。之前没有记录 SSM 整合的过程, 这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些。以前解决问题的过程和方法并没有及时记录,以后在自己的小项目中遇到我再整理分享一下。 这次 , 先...原创 2018-12-10 16:25:50 · 234 阅读 · 0 评论 -
基于Maven的Spring + Spring MVC + Mybatis的环境搭建
基于Maven的Spring + Spring MVC + Mybatis的环境搭建项目开发,先将环境先搭建起来。上次做了一个Spring + Spring MVC + Mybatis + Log4J + JUnit Test的环境搭建,这次也差不多,不过就是基于了Maven,同时也添加了事务管理。首先,可以去了解一下maven,个人觉得这个东西就是JAR包管理方便,不用自己一个个去写,直接添...原创 2018-12-10 16:57:08 · 384 阅读 · 0 评论 -
详细解释什么是JavaEE?
也许你学习了那么久的Java了,但如果有人问你什么是JavaEE?你会怎么回答他呢?在此我来谈谈关于JavaEE的相关技术。(仅是个人见解)在谈JavaEE时,我们首先来了解一下Java平台。目前,Java平台有3个版本:适用于小型设备和智能卡的JavaME(Java Platform Micro Edition,Java微型版)、适用于桌面系统的JavaSE(Java Platform Sta...原创 2018-12-10 17:06:38 · 14296 阅读 · 1 评论 -
Maven项目下启动后Eclipse报错:org.springframework.web.context.ContextLoaderListener
严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListenerjava.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener at or...原创 2019-02-03 20:29:33 · 1143 阅读 · 0 评论 -
浅谈持续集成的理解以及实现持续集成,需要做什么?
一、持续集成是什么?持续集成是一种软件开发的实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。持续集成指的是,频繁地(一天多次)将代码集成到主干,通过持续集成流程的进行自动化方式...转载 2019-04-12 12:20:46 · 5539 阅读 · 2 评论 -
git常用命令和场景
总结:git init //初始化本地git环境git clone XXX//克隆一份代码到本地仓库git pull //把远程库的代码更新到工作台git pull --rebase origin master //强制把远程库的代码跟新到当前分支上面git fetch //把远程库的代码更新到本地库git add . //把本地的修改加到stage中git commit -m ‘...原创 2019-04-12 12:59:34 · 90 阅读 · 0 评论 -
IntelliJ IDEA 创建Spring+SpringMVC+mybatis+maven项目
第一步: 创建maven项目输入项目名和工程id(这里的GroupId和ArtifactID随意填写,但是ArtifactID最好和你的项目一名一样然后next)选择maven(下图是用idea自带的maven,你也可以用你自己下载的maven,directory地址指向你自己的maven就行,setting和repository同理)默认就可以了刚开始时间比较长,可以看到,用了有...原创 2019-05-30 17:37:41 · 405 阅读 · 0 评论 -
IntelliJ Idea14 创建Maven多模块项目,多继承,热部署配置总结(一)
一、项目结构multi-module-parent是主工程,里面包含两个模块(Module):module-web是应用层,用于界面展示,依赖于module-core参的服务。module-core层是服务层,用于给web层提供服务。跟java的package类似,一般是按照的功能模块分module,比如:sso/cas/portal/activity/system,具体可根据需要...原创 2019-06-03 00:27:01 · 833 阅读 · 0 评论 -
IntelliJ Idea14 创建Maven多模块项目,多继承,热部署配置总结(二)
接着上文【IntelliJ Idea14 创建Maven多模块项目,多继承,热部署配置总结(一)】,总结下项目热部署和pom文件结构的一些要点:一,依赖包的热部署上文中项目如果改了依赖包core模块中的service服务代码,重启web服务是看不到改动效果的,这是因为依赖的core已经打成jar包给web模块使用了,重启并不会重新打jar包,所以只能重新package打包才能看到效果。【解决...原创 2019-06-03 01:46:17 · 259 阅读 · 1 评论 -
IntelliJ Idea14 创建Maven多模块项目,多继承,热部署配置总结(三)
pom.xml中repositories、pluginRepository的作用pom.xml中repositories标签的作用是: 用来配置maven项目的远程仓库。示例如下: <repositories> <repository> <id>nexus</id> <nam...原创 2019-06-03 02:21:44 · 329 阅读 · 0 评论 -
浅谈mybatis如何半自动化解耦和ORM实现
在JAVA发展过程中,涌现出一系列的ORM框架,JPA,Hibernate,Mybatis和Spring jdbc,本系列,将来研究Mybatis。 通过研究mybatis源码,可将mybatis的大致架构总结为下图: &...转载 2019-06-19 23:08:04 · 1595 阅读 · 2 评论 -
Spring AOP注解通过@Autowired,@Resource,@Qualifier,@PostConstruct,@PreDestroy注入属性的配置文
本文介绍了使用spring注解注入属性的方法。使用注解以前,注入属性通过类以及配置文件来实现。现在,注入属性可以通过引入@Autowired注解,或者@Resource,@Qualifier,@PostConstruct,@PreDestroy等注解来实现。使用注解以前我们是怎样注入属性的类的实现: 1. public class UserManagerImpl implements U...原创 2018-12-10 14:37:04 · 164 阅读 · 0 评论