![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
《JAVA》
文章平均质量分 83
Java相关问题整理栏
道1993
每一个不曾起舞的日子都是对生命的辜负
展开
-
Netty框架
Netty是由JBOSS提供的一个java开源框架,现为 Github上的独立项目。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说,Netty 是一个基于NIO的客户、服务器端的编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户、服务端应用。Netty相当于简化和流线化了网络应用的编程开发过程,例如:基于TCP和UDP的socket服务开发。“快速”和“简单”并不用产生维护性或性能上的问题。原创 2023-01-09 09:27:04 · 935 阅读 · 1 评论 -
JVM调优
6、为了验证自己的猜想,于是准备登录后台去测试下,结果在测试的过程中发现到处订单的按钮前端居然没有做点击后按钮置灰交互事件,结果按钮可以一直点,因为导出订单数据本来就非常慢,使用的人员可能发现点击后很久后页面都没反应,结果就一直点,结果就大量的请求进入到后台,堆内存产生了大量的订单对象和EXCEL对象,而且方法执行非常慢,导致这一段时间内这些对象都无法被回收,所以最终导致内存溢出。jstat -gc PID 1000 查看GC次数,时间等信息,每隔一秒打印一次。转载 2022-11-23 14:13:44 · 2686 阅读 · 0 评论 -
Windows编写批处理脚本.bat启动jar文件
Java代码中统一编码为UTF8,打包成Jar通过CMD运行,都会出现中文字符串为GBK问题。根源——cmd/bash默认的编码是GBK。最好也要规定执行java时的编码方式,把jvm的读写文件、也就是流的编码设置为utf-8。@与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)打开cmd,输入以下命令:chcp 65001 更改cmd的编码为UTF-8。echo off 表示在此语句后所有运行的命令都不显示命令行本身。echo 表示将内容输出到窗口。原创 2022-11-03 10:26:46 · 4242 阅读 · 0 评论 -
ES介绍与集成
基本概念:Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎.当然 Elasticsearch 并不仅仅是 Lucene 那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:集成:springboot1.1. 集成方式Spring Boot中集成Elasticsearch有4种方式:本文用后面两种方式来分别连接并操作Elasticsearch1.2. 环境与配置服务端:elasticsearch-6.3.2原创 2022-07-07 16:15:25 · 647 阅读 · 0 评论 -
JAVA微服务知识概述
A.架构演变演变过程B.分布式架构:C.SOA架构:D.微服务架构架构:E.微服务架构与SOA架构区别 Q:讲一下Dubbo的SPI机制。Eureka 注册中心/服务治理Q:讲一下Eureka.Hystrix熔断。原创 2022-06-22 10:50:21 · 4292 阅读 · 0 评论 -
SpringMVC模式深度解析
SpringMVC以DispatcherServlet为核心,负责协调和组织不同组件以完成请求处理并返回响应的工作,实现了MVC模式。 Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。想要实现自己的SpringMVC框架,需要从以下几点入手:了解Sp......原创 2022-06-20 14:17:43 · 401 阅读 · 0 评论 -
JAVA初中高级工程师进阶之阶段性基础体系
Java程序员进阶之路初中高阶段性技术集的相关知识储备框架原创 2022-06-02 14:53:32 · 505 阅读 · 0 评论 -
记录操作日志(JAVA版某大厂基础实践)
1. 操作日志的使用场景 2. 实现方式 2.1 使用 Canal 监听数据库记录操作日志 2.2 通过日志文件的方式记录 2.3 通过 LogUtil 的方式记录日志 2.4 方法注解实现操作日志 3. 优雅地支持 AOP 生成动态的操作日志 3.1 动态模板 4. 代码实现解析 4.1 代码结构 4.2 模块介绍 5. 总结 1. 操作日志的使用..原创 2022-04-15 17:52:20 · 12630 阅读 · 1 评论 -
项目中单点登录的实现原理
单点登录原理是一个重要知识点,也常被问及,很多童鞋照葫芦画瓢搭建过单点登录,但是被问到原理时可能说不出来,下面简单介绍,抛砖引玉,希望对大家有所帮助。单点登录在现在的系统架构中广泛存在,他将多个子系统的认证体系打通,实现了一个入口多处使用,而在架构单点登录时,也会遇到一些小问题,在不同的应用环境中可以采用不同的单点登录实现方案来满足需求。一、共享Session共享Session可谓是实现单点登录最直接、最简单的方式。将用户认证信息保存于Session中,即以Session内存储的值为用户凭证,这原创 2022-03-28 11:15:00 · 360 阅读 · 0 评论 -
JAVA各种锁机制--细!细!细!
Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快捷的理解相关知识。下面给出本文内容的总体分类目录:1. 乐观锁 VS 悲观锁#乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度。在Java和数据库中都有此概原创 2021-10-15 17:31:19 · 223 阅读 · 1 评论 -
Java完整学习目录小白变大神
☕️Java基础初学者学Java常遇到的问题,我都给你回答了!Java学习路线泛型就这么简单注解就这么简单Object对象你真理解了吗?JDK10都发布了,nio你了解多少?Java 程序员都需要懂的 反射!COW奶牛!Copy On Write机制了解一下给女朋友讲解什么是Optional【JDK 8特性】还在用Synchronized?Atomic你了解不?《阿里巴巴 Java开发手册》读后感JVM如何从入门到放弃的?记一次愚蠢的操作–String不可变性记一次愚蠢的操作–原创 2021-04-07 13:43:33 · 232 阅读 · 1 评论 -
创业互联网公司如何搭建自己的技术框架
适用范围本文主要针对小型互联网公司,特别适用于手机APP的后台架构,基本可以支撑5万日活本文会对可能用到的相关技术进行技术选型的说明,以及相对应的设备的采购。技术指标说一下一些技术指标的计算过程可以作为其他同学的参考QPS, 如果是5万日活,使用集中在每天的4小时,每个用户大概产生100的请求,那么平均下来,我们系统大概应该支撑的请求为:50000 * 100 / (4 * 60 * 60) = 350 qps/s业务数据 业务量,我们自己是新闻业务,可能会有其他的业务,比如游戏,商城等等,基本原创 2021-03-04 09:54:05 · 254 阅读 · 1 评论 -
SpringBoot 1.X到2.X 升级的问题诊断
为什么要升级支持最新的Java9(虽然目前的项目还没有用到Java9,但未来升级到Java9的可能性会很高)。基于Spring5构建,Spring5的各种新特性均可以在这里使用。为各种组件的响应式变成提供自动化配置(虽然我们没有用到,但使用这些组件的人用起来会更顺畅)。支持SpringMVC的非阻塞式替代方案WebFlux以及嵌入式NettyServer。最重要的还是目前的项目依赖还比较简单。如果现在不升级,随着依赖数的增加、版本跨度增加,再升级依赖就会更加困难。升级用到的工具2.1 mvn.原创 2021-03-02 11:05:18 · 472 阅读 · 0 评论 -
spring核心问题55问
1、一般问题1.1. 不同版本的 Spring Framework 有哪些主要功能?VersionFeatureSpring 2.5发布于 2007 年。这是第一个支持注解的版本。Spring 3.0发布于 2009 年。它完全利用了 Java5 中的改进,并为 JEE6 提供了支持。Spring 4.0发布于 2013 年。这是第一个完全支持 JAVA8 的版本。1.2. 什么是 Spring Framework?• Spring 是一个开源应用框架,旨在降低应用程序开发的复杂度。• 它是轻量级原创 2020-10-20 09:58:15 · 243 阅读 · 0 评论 -
10个高频Springboot问题
1、Spring Boot 的自动配置是如何实现的?Spring Boot 项目的启动注解是:@SpringBootApplication,其实它就是由下面三个注解组成的:• @Configuration• @ComponentScan• @EnableAutoConfiguration其中 @EnableAutoConfiguration 是实现自动配置的入口,该注解又通过 @Import 注解导入了AutoConfigurationImportSelector,在该类中加载 META-INF/原创 2020-10-20 09:45:38 · 939 阅读 · 0 评论 -
Google无法安装拓展程序插件问题解决(易文档接口测试插件)
一般我们是将google浏览器的拓展程序下将开发者模式打开并直接将CRX文件拖进去就好:***但是***在进行易文档插件安装时,反复提醒无法在此平台安装此插件,点击继续也没有用。提示如下解决办法:将.crx文件后缀名更改为.rar压缩文件。如图然后解压压缩文件最后在浏览器的拓展程序中点击“加载已解压的拓展程序”这样就添加成功了。适用于任意拓展程序的添加方式。...原创 2020-01-14 14:09:20 · 372 阅读 · 1 评论 -
筛选排序信息展示的并发请求问题的思考与方案
关于并发量大的状态下,推广平台信息列表出现了耗时严重的情况。筛选排序系统出现过耗时严重的情况,根据业务系统的筛选排序慢接口的traceId, 分析具体情况是请求链路上的阻塞是ES.问题描述及解决对策:首选我们在监控平台上确认了一下ES的访问流量,发现流量曲线变化不大,说明不是ES读请求压力突增导致的。接着我们看了ES的bigdesk监控,发现有不少Full GC,与此同时查看了GC日志...原创 2020-01-17 14:28:25 · 183 阅读 · 0 评论 -
linux启动部署的springboot的项目后,关闭连接(xshell)后Java -jar xxx.jar不再运行的问题
springboot 内置的tomcat启动方式:xshell连接定位到打包的xxx.jar目录下:前台启动命令:Java -jar xxx.jar后台启动命令:Java -jar xxx.jar &但是后台启动后,直接关闭xshell连接后。程序进程不再运行。解决方法:在退出连接/关闭连接之前需要:Ctrl+D。结束即可。另外:springboot项目是系统后台。前台采用...原创 2020-03-27 09:34:39 · 1018 阅读 · 1 评论 -
nginx代理jar后端(springboot)项目凌晨宕机,报错java.lang.IllegalArgumentException
Http11Processor - Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.java.lang.IllegalArgumentException: Invalid character found ...原创 2020-03-20 18:07:45 · 624 阅读 · 0 评论 -
Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.1.0……
maven package 异常:Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.1.0……解决方案:xftp占用了相关路径 (如:target),退出该target目录即可,关掉就好了。...原创 2020-03-20 13:53:01 · 300 阅读 · 0 评论 -
错误: 程序包com.sun.istack.internal不存在及<plugin>更改后缺少main类问题
一:遇到的问题及解决方法最近在搭建一个新项目时,使用spring-boot-maven-plugin插件打包,springboot项目在发布后启动时遇到找不到主main问题。遇到这个问题当时感觉本地直接idea里启动springboot好好的,为什么用自动化发布工具发布后怎么就出现这个问题了呢?就到线上打好的包解压看MANIFEST.MF文件里的内容如下:Manifest-Version:...原创 2020-03-19 19:36:43 · 1893 阅读 · 0 评论 -
json几种格式的解析
这里写自定义目录标题}}public class GsonUtil { //将json对象解析成相应的映射对象 public static T parseJsonWithGson(String str,Class type){ Gson gson = new Gson(); return gson.fromJson(str,type); }...转载 2019-07-01 11:10:37 · 1127 阅读 · 0 评论 -
Java中的String字符串之处理subString()函数使用
Java中的subString()函数是处理截取字符串的操作函数: 1. substring(int beginIndex); ~~从首字母起长度为beginIndex的字符串,将剩余字符串赋值使用;~~ 2.substring(int beginIndex,int endIndex) ~~从beginIndex开始至...原创 2019-05-16 14:28:20 · 669 阅读 · 0 评论 -
json数据解析
对服务器端来说,返回给客户端的数据格式一般分为html、xml和json这三种格式。针对json作一讲解 ,包括如何通过json-lib和gson这两个json解析库来对解析我们的json数据,以及如何在我们的Android客户端解析来自服务器端的json数据,并更新到UI当中。一、什么是jsonjson(Javascript Object Notation)是一种轻量级的数据原创 2016-01-04 10:50:49 · 767 阅读 · 0 评论 -
Java输入输出流2
输入流demo:import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;public class InputStreamDemo1 { public static void main(String[] args) throws Exception { /* I原创 2015-12-23 17:10:08 · 351 阅读 · 0 评论 -
java输入输出流1
通过java.io.File类访问文件属性java.io 类 Fileio ---i--- in--输入 o---out---输出 文件和目录路径名的抽象表示形式。 构造方法摘要 File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 F原创 2015-12-23 17:02:23 · 713 阅读 · 0 评论 -
AsyncTask详解
一、Android当中的多线程在Android当中,当一个应用程序的组件启动的时候,并且没有其他的应用程序组件在运行时,Android系统就会为该应用程序组件开辟一个新的线程来执行。默认的情况下,在一个相同Android应用程序当中,其里面的组件都是运行在同一个线程里面的,这个线程我们称之为Main线程。当我们通过某个组件来启动另一个组件的时候,这个时候默认都是在同一个线程当中完成的。当然转载 2016-01-04 11:20:40 · 361 阅读 · 0 评论 -
针对SecurityException的处理方式
情况一: 在使用AIDL远程服务时,经常会遇到ERROR/AndroidRuntime(716): java.lang.SecurityException: Binder invocation to an incorrect interface这个错误,解决方法:在使用上请注意,服务端与客户端都要有相同的接口(使用到的),这里的“相同”是指完全相同,包括包名,也就是说要在原创 2015-11-19 09:48:36 · 9487 阅读 · 0 评论 -
Navicat 远程连接MySQL报2003(防火墙操作)
https://blog.csdn.net/note_remark/article/details/104861614原创 2020-08-04 18:01:42 · 495 阅读 · 0 评论 -
Navicat连接远程mysql8.0.18(cenos7)
mysql 8.0.18 用Navicat远程无法连接安装了mysql 8.0.18 之后本地可以登录,但是远程第三方工具无法连接,防火墙已经放通的,解决:首先登陆到mysql命令行:mysql -u root -p1进入之后选择mysql库,用户信息都存在这个库的user表中use mysql;1select host, user, authentication_string,...原创 2020-01-16 11:08:59 · 244 阅读 · 0 评论 -
Navicat远程连接腾讯云cenOS7的mysql8.0.18(ssh)
远程连接Mysql8.0.18步骤相关问题解决思路:1.xshell工具登录mysql数据库#mysql -u root -p2.切换到use并查看用户权限信息#use mysql -A#select host, user, authentication_string, plugin from user;相关信息如下图:备注:host字段下的localhost表示只允许本地连...原创 2020-10-15 18:09:24 · 165 阅读 · 0 评论 -
mysql表设计实例
--CREATE TABLE IF NOT EXISTS `ims_kb_house_room` ( `id` int(12) NOT NULL, `uniacid` int(12) DEFAULT NULL, `thumb` varchar(255) DEFAULT NULL COMMENT '缩略图', `title` varchar(255) DEFAULT NULL,...原创 2020-01-10 15:33:40 · 704 阅读 · 0 评论 -
CenOS7上的mysql8.0.+密码忘记解决方案
Xshell链接之后1.首先编辑/etc/my.cnf文件 vim /etc/my.cnf在文件中加入一行配置:skip-grant-tables具体如图:完成后按 ESC退出编辑并:wq保存编辑并退出。2.重新启动mysqlservice mysqld restart3.进入mysql(不再需要密码登陆)mysql4重置密码>use mysql; ...原创 2020-01-09 14:33:42 · 238 阅读 · 0 评论 -
Mysql 字符集及排序规则
Mysql 字符集及排序规则一、字符集字符集:就是用来定义字符在数据库中的编码的集合。常见的字符集:utf8、Unicode、GBK、GB2312(支持中文)、ASCCI(不支持中文)二、字符集排序规则作者本人用的是utf8_general_ci后缀ci (case insensitive)意味不区分大小写(大小写不敏感),后缀cs (case sensitive)区分大小写(大小写敏...转载 2020-01-07 09:07:15 · 770 阅读 · 0 评论 -
收藏MySQL操作命令
删除mysql目录下的data文件后。命令:mysqld --initialize-insecure --user=mysql(生成新的data目录文件)//:解决服务启动失败的问题MySQL 获取当前数据库所有表信息:show tables statusMySQL 获取所有字段信息:show full fields from 表名//更改数据库密码::;ALTER USER ‘roo...翻译 2019-07-01 17:54:46 · 142 阅读 · 0 评论 -
单片机与手机应用进行蓝牙通讯
单片机连接手机应用客户端进行蓝牙通讯:学习了!!!!分享:package com.severn;import java.util.ArrayList;import android.app.Activity;import android.bluetooth.BluetoothAdapter;import android.bluetooth.BluetoothDevice;impor...原创 2019-09-27 13:54:40 · 1429 阅读 · 0 评论 -
JAVA设计模式总结之23种设计模式
JAVA设计模式总结之23种设计模式上一篇总结了设计模式的六大原则《JAVA设计模式总结之六大设计原则》,这一篇,正式进入到介绍23种设计模式的归纳总结。一、什么是设计模式设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可原创 2020-10-15 10:55:54 · 172 阅读 · 0 评论 -
IDEA打包war的详细过程及tomcat 发布和腾讯云发布步骤(一条龙)
注意听讲:**做移动端应用开发的,应公司要求后台管理系统也需要自己开发搭建。其实感觉AS与IDEA两个工具的用法类似。我就用IDEA进行了后台Java web的开发工作。对于IDEA打包war问题,也做了关注,但网站上大部分帖子对于初涉后台开发的感觉还是不够细致。故此,把个人的成功发布的详细过程做了梳理。希望对小白有帮助吧。一.IDEA打包war详解:1.打开工程,在工具中依次点击“Fil...原创 2019-09-26 16:23:30 · 814 阅读 · 2 评论 -
IDEA通过命令打包war发布文件及配置到腾讯云服务器
在工作区的底部菜单栏"Terminal"。进入主工程根目录后:输入命令mvn package -P prod之后就会在工程目录下生成名为:“target”的文件夹里面的 xxx.war发布文件。该文件部署到腾讯云服务器端也简单。1.在服务器端如果有安装tomcat服务的话。直接把xxx.war通过FTP上传到你的安装目录下:如(E:\Tomca8.5\webapps)2.启动Tomcat后...原创 2019-09-16 17:22:43 · 774 阅读 · 0 评论 -
APP数据共享
让自己的数据和其它应用程序共享有两种方式:创建自己的Content Provider (即继承自Content Provider的子类) 或者是将自己的数据添加到已有的Content Provider中去,后者需要保证现有的Content Provider和自己的数据类型相同并且具有该 Content Provider的写入的权限。 (1) 建立数据的存储系统原创 2016-02-04 09:43:39 · 778 阅读 · 0 评论