自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(123)
  • 资源 (5)
  • 收藏
  • 关注

原创 面试题:Java程序占用CPU过高怎么排查

问:“线上一台服务器 CPU 使用率100% 了,如果你碰到这样的情况,如何排查并找到问题原因?”这就是一个套路题,所谓套路题就是有标准的套路解法的,掌握了套路,不仅能解决面试官,还能解决问题。真碰到这个问题的时候应该怎么排查呢?模拟一个高 CPU 场景先用一段程序创建几个线程,将其中一个线程设置成高 CPU 使用率的。publicstaticvoidmain(String[]args){for(inti=;i<10;i++){Thread...

2022-04-19 16:02:42 4233 1

原创 JVM面试专题及答案-part3

## **15.java** **内存模型**java 内存模型(JMM)是线程间通信的控制机制.JMM 定义了主内存和线程之间抽象关系。线程之间的共享变量存储在主内存(main memory)中,每个线程都有一个私有的本地内存(local memory),本地内存中存储了该线程以读/写共享变量的副本。本地内存是JMM 的一个抽象概念,并不真实存在。它涵盖了缓存,写缓冲区,寄存器以及其他的硬件和编译器优化。Java 内存模型的抽象示意图如下:从上图来看,线程 A 与线程 B 之间如要通信的话,必须.

2021-10-26 08:04:49 167

原创 JVM面试专题及答案-part2

## **11.JVM** **内存分哪几个区,每个区的作用是什么?**java 虚拟机主要分为以下一个区:**方法区:**1. 有时候也成为**永久代**,在该区内很少发生垃圾回收,但是并不代表不发生 GC,在这里进行的 GC 主要是对方法区里的常量池和对类型的卸载2. 方法区主要用来存储已被虚拟机加载的类的信息、常量、静态变量和即时编译器编译后的代码等数据。3. 该区域是被线程共享的。4. 方法区里有一个运行时常量池,用于存放静态编译产生的字面量和符号引用。该常量池具有动态性,也就.

2021-10-26 08:02:27 179

原创 JVM面试专题及答案-part1

## 1. 内存模型以及分区,需要详细到每个区放什么。JVM 分为堆区和栈区,还有方法区,初始化的对象放在堆里面,引用放在栈里面,class 类信息常量池(static 常量和 static 变量)等放在方法区new:· 方法区:主要是存储类信息,常量池(static 常量和 static 变量),编译后的代码(字节码)等数据· 堆:初始化的对象,成员变量 (那种非 static 的变量),所有的对象实例和数组都要在堆上分配· 栈:栈的结构是栈帧组成的,调用一个方法就压入一帧,帧...

2021-10-26 07:53:37 126

原创 Volatile与各种JUC同步锁

Volatile保证线程可见性--MESI--缓存一致性协议 线程可见性在CPU级别是通过缓存一致性协议保证的Volatile禁止指令重排序(CPU)指令重排序在CPU级别是无法禁止的,因为是在CPU内部运行的原理。而在jvm中加上volatile关键字是可以实现禁止指令重排序的,volatile给CPU发出指令,CPU中有原语指令loadfence(读屏障)和storefence(写屏障)的操作- DCL单例-Double Check Lock-Mgr06.java...

2021-10-25 20:12:20 122

原创 线程的分类

线程的概念、启动方式、常用方法 Synchronized(Object)线程同步-- 不能用String常量或者String数据类型,Integer,Long。不能用基础数据类型-- “object”线程同步-- synchronized锁- 锁的是对象不是代码 普通方法 锁的是this(当前对象) static对象锁的是 xx.class 锁定方法与非锁定方法 可以同时执行 锁升级 如果锁定某个对象 在对象头上的某两位指定锁的是什么类型的锁。在对象头上记录着哪个线程...

2021-10-25 20:06:09 180

原创 常见For 循环优化方式总结——提高效率小妙招

我们都经常使用一些循环耗时计算的操作,特别是for循环,它是一种重复计算的操作,如果处理不好,耗时就比较大,如果处理书写得当将大大提高效率,下面总结几条for循环的常见优化方式。首先,我们初始化一个集合 list,如下:List<String>list=newArrayList<String>();方法一:最常规的不加思考的写法for(inti=0;i<list.size();i++){System.out.println(li...

2021-08-27 15:28:07 2111

转载 mybatis中sql 书写 规范 优化

 规范 做注解 便于修改和优化 规范<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com......dao (mapper)....."><resultMap id="..

2021-08-24 17:16:24 454

原创 Oracle数据库,创建表并给表、字段添加注释

1、创建货品表create table goods(billing_cycle_id VARCHAR2(8) NOT NULL PRIMARY KEY, -- 账期, 其值例如:20191029sum_num NUMBER DEFAULT NULL, -- 当日数据总量, 其值例如:1400re_sum_num NUMBER, -- 昨日数据量, 其值例如: 1320ratio VARCHAR2(4...

2021-08-24 10:17:34 7377

原创 myBatis中的#和$的区别

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。 动态sql 是mybatis 的主要特性之一,在mybatis中我们可以把参数传到xml文件,由mybatis对sql及其语法进行解析,m...

2021-03-05 15:31:37 1000 1

原创 四个锻炼方法腰椎间盘突出症全治好

腰椎间盘突出症是骨科疾病中常见的一种,平常腰痛,腰腿痛,可能都是腰椎间盘突出症惹的祸。那么如果不幸患上了腰椎间盘突出症,应该怎样锻炼呢?下面将为大家介绍腰椎间盘突出症的自我锻炼方法腰间盘突出的锻炼方法一、腰间盘突出的锻炼方法1、退步走:每天退步走4060分钟。走的时候尽可能往后倒,以走完后微感疲劳,以不加重症状为度。腰椎间盘突出症的锻炼方法中,退步走最简单易行。2、游泳:在众多的体育运动项目中,游泳运动较为适合腰椎间盘突出症患者,是一种效果不错的锻炼方法。3、仰卧蹬车:仰卧床上,双腿向上似蹬自行车状。每

2020-12-25 11:53:59 387 1

转载 高并发架构系列Kafka、RocketMQ、RabbitMQ的优劣势比较

在 高并发 业务场景下,典型的阿里双11秒杀等业务,消息队列中间件在流量削峰、解耦上有不可替代的作用。之前介绍了 MQ消息队列的12点核心原理总结 ,以及 如何从0到1设计一个MQ消息队列 ,以及 RPC远程调用和消息队列MQ的区别今天我们一起来探讨:1.全量的消息队列究竟有哪些?2.Kafka、RocketMQ、RabbitMQ的优劣势比较3.以及消息队列的选型最全MQ消息队列有哪些 那么目前在业界有哪些比较知名

2020-10-28 22:34:07 590

原创 内存条的写入速度比硬盘快很多

为什么内存条的写入速度比硬盘快那么多?一方面硬盘是有机械结构的,磁头要运动到相应的位置,转片还在转动,然后读取此信号。内存是没有机械结构的,是电,瞬间到达。电的到达速度要比磁头的运动快很多,比盘算转动也快得多,所以,有机械结构的磁头读取速度是不能和无机械结构电的速度相比的。补充:固态硬盘,硬盘一般分为机械硬盘和固态硬盘。固态硬盘使用的是闪存,比机械硬盘的磁盘要快得多,单页不能和真正的RAM去比速度。二方面因为制作材料和工作原理不同,内存是一种半导体存储器,简称RAM。RAM的优点是存取速度快

2020-10-28 22:12:48 3419

原创 正向代理和反向代理

网络代理分为正向代理和反向代理正向代理,当客户端无法访问外部资源的时候(由于诸如墙这样的原因),可以通过一个正向代理去间接地访问,所以客户端需要配置代理服务器的ip。正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理正向代理  正向代理的用途:  (1)访问原来无法访问的资源,如goog

2020-10-28 22:07:21 154

原创 redis的三种集群方式

redis有三种集群方式:主从复制,哨兵模式和集群。1.主从复制主从复制原理:从服务器连接主服务器,发送SYNC命令;主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命令;主服务器BGSAVE执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令;从服务器收到快照文件后丢弃所有旧数据,载入收到的快照;主服务器快照发送完毕后开始向从服务器发送缓冲区中的写命令;从服务器完成对快照的载入,开始接收命令请求,并执行来自主服务器缓冲

2020-10-28 21:50:32 121

原创 Redis缓存穿透-雪崩-击穿现象与解决办法

二、初认识缓存穿透:key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。缓存击穿:key对应的数据存在,但在redis中过期,此时若有大量并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端DB压垮。缓存雪崩:当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,也会

2020-10-27 11:17:23 200

原创 Lucene是什么以及用法

一、Lucene是什么Lucene 是一个高效的,基于Java 的全文检索库我们先学习下全文检索,什么叫做全文检索呢?这要从我们生活中的数据说起。生活中的数据总体分为两种:结构化数据 和非结构化数据结构化数据: 指具有固定格式或有限长度的数据,如数据库,元数据等。非结构化数据: 指不定长或无固定格式的数据,如邮件,word文档等。有的地方还会提到第三种,半结构化数据,如XML,HTML等,根据需要可按结构化数据来处理,也可抽取出纯文本按非结构化数据来处理。非结构化数据又一种叫法叫全文数据。1

2020-10-27 10:44:27 193

原创 Redis-哨兵模式

1.1 Redis软件安装Redis服务器:IP:10.2.111.183,IP:10.2.111.184。以下安装步骤基于服务器及IP规划妥当,本安装指南以上文中规划的IP进行安装,操作系统为Linux。3.2.1安装Redis按步骤依在规划的服务器(CentOS7.2以上)上执行下述命令。#切换至/usr/local目录cd /usr/local#下载redis-3.2.0或以上版本包并上传到服务器#解压tar xzf redis-3.2.0.tar.gz#切换至redis-3.2.

2020-10-26 12:05:11 187

转载 Redis面试题

redis面试题1.什么是redis?Redis 是一个基于内存的高性能key-value数据库。2.Reids的特点Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个

2020-10-26 11:54:38 200

原创 MySQL 索引深入剖析

1. 索引是什么? 1.1. 索引是什么一张表有 500 万条数据,在没有索引的 name 字段上执行一条 where 查询:select * from user_innodb where name ='青山'; 如果 name 字段上面有索引呢?在 name 字段上面创建一个索引,再来执行一下相同的查询。ALTER TABLE user_innodb DROP INDEX idx_name; ALTER TABLE user_innodb ADD INDEX idx_name

2020-07-13 09:39:51 144

原创 MySQL 架构与内部模块

我们操作数据库有各种各样的方式,比如 Linux 系统中的命令行,比如数据库工具Navicat,比如程序: Java 语言的JDBC API 或者ORM 框架。当工具或者程序连接到数据库之后,实际上发生了什么事情?它的内部是怎么工作的?以一条查询语句为例,我们来看下MySQL 的工作流程是什么样的。1、一条查询 SQL 语句是如何执行的?程序或者工具要操作数据库,第一步要跟数据库建立连接。 通信...

2020-07-13 09:38:01 276

原创 亿级数据量性能优化必备之分库分表

每个业务系统根据业务拆分成不同的系统,用不同的数据库,比如客户系统-》客户DB Oracle,合同系统-》合同DB MySQL 放款系统-》放款DB Postgresql1.什么情况下分库分表,分库分表解决什么问题分库分表的好处 1.提升数据的访问速度 2.缓解数据库的压力 3.提升存储容量消费金融核心系统客户、账户、商户、产品、放款、还款、合同、信审、资金拆分这些模块,单独开发,部署单张表数据量超载 数据水平拆分,分散存储一张表的数据量达到多少时才分表500...

2020-07-11 11:46:02 1174

原创 测试方案

最近在做一个项目,前台使用的是angularjs,后台使用的是webapi。webapi不需要登陆,只需要知道方法就能直接访问。之前没有做过权限控制的问题,百度搜到了不少,但是都不能用,只能自己解决了,后来终于找到了一种可以实现的方法,只是不知道好不好,实现方法如下: 1、根据登陆信息(用户名,密码之类的)去数据库查询到用户信息,以及用户所有的权限(权限由在增加用户的时候分配)。 2、建立FormsAuthenticationTicket,并把用户信息保...

2020-07-10 09:18:50 126

原创 Web API接口开发和测试

4、ASP.NET Web API的开发上面我们定义了一般的Web API接口,以及实现相应的业务实现,如果我们需要创建Web API层,还需要构建一个Web API项目的。创建好相应的项目后,可以为项目添加一个Web API基类,方便控制共同的接口。然后我们就可以在Controller目录上创建更多的应用API控制器了。最后我们为了统一所有的API接口都是返回JSON方式,我们需要对WebApiConfig里面的代码进行设置下。public sta...

2020-07-10 09:16:01 1847

转载 IoC和DI是什么

IoC叫控制反转,是Inversion of Control的缩写,DI(Dependency Injection)叫依赖注入,是对IoC更简单的诠释。控制反转是把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。所谓的”控制反转”就是对组件对象控制权的转移,从程序代码本身转移到了外部容器,由容器来创建对象并管理对象之间的依赖关系。IoC体现了好莱坞原则 – “Don’t call me, we will call you”。依赖注入的基本原则是应用组件不应该负责查找资源或

2020-07-10 08:27:26 546 1

原创 Web API接口安全验证

Web API接口安全验证在上篇随笔《Web API应用架构设计分析(1)》,我对Web API的各种应用架构进行了概括性的分析和设计,Web API 是一种应用接口框架,它能够构建HTTP服务以支撑更广泛的客户端(包括浏览器,手机和平板电脑等移动设备)的框架,本篇继续这个主题,介绍如何利用ASP.NET Web API 来设计Web API层以及相关的调用处理。1、Web API的接口访问分类Web API接口的访问方式,大概可以分为几类:1)一个是使用用户令牌,通过Web API接口进行

2020-07-10 00:32:37 811

原创 ASP.NET MVC WebApi接口授权验证

ASP.NET MVC WebApi接口授权验证对于很多开发者来说,不管是使用任何一种框架,或者是使用任何一种语言,都要使用面向接口编程。使用面向接口编程的时候,就会有很多的权限验证,用户验证等等。特别是对于一些系统来说,别人想要对接你的系统,同步系统数据,那么就必须要提供对外访问接口。当然,这对外接口也不是随便就提供的,对于一些机密数据,那么对于别人想要使用你的数据,就必须按照一个标准来。我系统对外提供接口,想要用这个接口必须要通过身份认证才行。举个例子:你想去我家,你必须经过我的同意和我给你的钥

2020-07-10 00:28:36 1444

原创 WebAPI--安全性,身份验证和授权

WebAPI--安全性,身份验证和授权在本系列文章中,介绍一些保护未经授权用户的Web API的选项。本系列将涵盖身份验证和授权。1、身份验证是了解用户的身份。例如,Alice使用其用户名和密码登录,服务器使用密码对Alice进行身份验证。2、授权决定是否允许用户执行操作。例如,Alice有权获取资源但不能创建资源。本系列的第一篇文章概述了ASP.NET Web API中的身份验证和授权。其他主题描述了Web API的常见身份验证方案WebAPI中的身份验证和授权认证:WebA.

2020-07-10 00:19:23 1804

原创 NET Web API中的路由和操作选择

ASP.NET Web API中的路由和操作选择本文介绍ASP.NET Web API如何将HTTP请求路由到控制器上的特定操作。本文将介绍路由过程的详细信息。如果您创建一个Web API项目并发现某些请求没有按照您期望的方式进行路由,那么本文将有所帮助。路由有三个主要阶段:1、将URI与路由模板匹配。2、选择一个控制器。3、选择一个动作。可以使用自己的自定义行为替换流程的某些部分。在本文中,我将描述默认行为。最后,我会注意到您可以自定义行为的位置。路由模板路径模板.

2020-07-10 00:05:25 247

原创 ASP.NET WebAPI中的路由

ASP.NET WebAPI中的路由本文介绍ASP.NET Web API如何将HTTP请求路由到控制器注意如果您熟悉ASP.NET MVC,则Web API路由与MVC路由非常相似。主要区别在于Web API使用HTTP方法而不是URI路径来选择操作。还可以在Web API中使用MVC样式的路由。本文不假设任何ASP.NET MVC知识。路由表:在ASP.NET Web API中,控制器是一个处理HTTP请求的类。控制器的公共方法称为操作方法或简单的操作。当Web API框架收到请求时,它

2020-07-10 00:03:47 561

原创 托管与调用Web API

托管Web API打开Program.cs文件并添加以下using语句:using System.Web.Http;using System.Web.Http.SelfHost;将以下代码添加到Program类。var config = new HttpSelfHostConfiguration("http://localhost:8080");config.Routes.MapHttpRoute("API Default", "api/{controller}/{...

2020-07-10 00:01:04 209

原创 模型和控制器

创建模型和控制器添加一个公共类Product。namespaceSelfHost{publicclassProduct{publicintId { get; set; }publicstringName { get; set; }publicstringCategory { get; set; }publicdecimalPrice { get; set; }...

2020-07-09 23:57:12 167

原创 json媒体类型格式化程序

一个媒体类型的格式是串行数据时的Web API编写的HTTP响应体的对象。内置格式化程序支持JSON和XML输出。默认情况下,这两个格式化程序都按值序列化所有对象。如果对象图包含循环引用,则按值序列化会产生问题。这就是Order和OrderDetail类的情况,因为每个都拥有对另一个的引用。在解决方案资源管理器中,展开App_Start文件夹并打开名为WebApiConfig.cs的文件。将以下代码添加到WebApiConfig类中:publicstaticclassWebApiConfi...

2020-07-09 23:53:51 358

原创 实体框架-ORM

实体框架是一个对象/关系映射框架。它将代码中的域对象映射到关系数据库中的实体。在大多数情况下,您不必担心数据库层,因为Entity Framework会为您处理它。您的代码操纵对象,并且更改将持久保存到数据库。创建域模型下载完成的项目添加模型有三种方法可以实现实体框架:数据库优先:从数据库开始,实体框架生成代码。模型优先:从可视化模型开始,实体框架生成数据库和代码。代码优先:从代码开始,实体框架生成数据库。我们使用的是代码优先方法,因此我们首先将域对象定义为POCO(普通旧C

2020-07-09 23:50:45 279

原创 在ASP.NET Web API 1中启用CRUD操作

下载完成的项目本教程介绍如何使用ASP.NET Web API支持HTTP服务中的CRUD操作。Visual Studio 2012Web API 1(也适用于Web API 2)CRUD代表“创建,读取,更新和删除”,这是四个基本的数据库操作。许多HTTP服务还通过REST或类似REST的API为CRUD操作建模。在本教程中,您将构建一个非常简单的Web API来管理产品列表。每个产品都包含名称,价格和类别(例如“玩具”或“硬件”)以及产品ID。The products AP.

2020-07-09 23:47:45 143

原创 ASP.NET-WebAPI

ASP.NET-WebAPI 官方文档: https://msdn.microsoft.com/zh-cn/library/hh833994(v=vs.108).aspx一、相关概念和简单API的使用1、什么是ASP.NET-WebAPI?ASP.NET WebAPI是一种框架,用于轻松构建可以访问多种客户端(包括浏览器和移动设备)的HTTP服务。ASP.NET WebAPI是一种用于在.NET Framework上构建RESTful应用程序的理想平台2.关于RESTful的理解...

2020-07-09 23:42:16 313

原创 MVC与WEBAPI跨域问题

跨域问题:前端实现 JsonP() { } 后端实现 1.Response. coding中写下面这句话HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Origin", "*");Response.Header("")配置HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Origin", "*");Action中写代码...

2020-07-09 23:37:35 188

原创 MVC技术点

MVC技术点Controller父类里边含有的:IActionInvoker _actionInvoker; 调用action方法ModelBinderDictionary _binders;模型绑定RouteCollection _routeCollection;路由集合ITempDataProvider _tempDataProvidercontroller传递数据的方法。这些方法都是在abstractclass ControllerBase :IControlle...

2020-07-09 23:28:52 503

转载 lucene.NET详细使用与优化详解

lucene.NET详细使用与优化详解1 lucene简介1.1 什么是lucenepowered by 2Lucene是一个全文搜索框架,而不是应用产品。因此它并不像www.baidu.com 或者google Desktop那么拿来就能用,它只是提供了一种工具让你能实现这些产品。1.2 lucene能做什么要回答这个问题,先要了解lucene的本质。实际上lucene的功能很单一,说到底,就是你给它若干个字符串,然后它为你提供一个全文搜索服务,告诉你你要搜索的关键词出现在哪里。知道了这个本质,你就可

2020-07-09 23:10:08 208

原创 VS2015快捷键

VS2015快捷键Shift+Alt+Enter: 切换全屏编辑Ctrl+B,T / Ctrl+K,K: 切换书签开关Ctrl+B,N / Ctrl+K,N: 移动到下一书签Ctrl+B,P: 移动到上一书签Ctrl+B,C: 清除全部标签Ctrl+I: 渐进式搜索Ctrl+Shift+I: 反向渐进式搜索Ctrl+F: 查找Ctrl+Shift+F: 在文

2017-04-19 10:46:14 920

k8s之lens使用方式

k8s之lens使用方式

2022-06-30

WEB打印 打印网页文字

用于网页打印,可以根据需要调整页面的长、宽

2015-06-15

extjs实用开发指南

extjs实用开发指南,里边是源代码,大部分是代码范例和相应的讲解

2015-05-30

75份速查表

75份各种速查表,帮助你查各种文档的API

2015-05-30

精华志 蜘蛛爬虫,递归抓取页面的URL

精华志 蜘蛛爬虫,递归抓取页面的URL .zip

2014-11-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除