wespten
悦分享
网上搜索资料的朋友,一定都会有这样一个感受,那就是知识点有时太过零散,有时又存在误区,有时又太过简短,而有时又缺乏深度,一个系统又详细的分享小天地,为真正想去学习或了解某些事情的朋友,持续提供有价值且有深度的内容。
展开
-
Java排错与诊断神器Arthas详解(附Arthas工具安装包)
alibaba/arthas: Alibaba Java诊断利器 - github.comArthas用户文档arthasArthas功能异常强劲,且在阿里巴巴线上支持使用多年。可以在进程不能启动的情况下完成诊断(如依赖中的重复类分析、ClassPath上的资源或类查找)开销少;简单少依赖(就纯文本的一个脚本文件)方便与(已有的)工具(如awksedcron)、流程或设施集成,进一步编程/自动化Arthas适用于各种Java应用场景,特别是在生产环境中解决实时性能问题。原创 2025-01-04 07:09:32 · 84 阅读 · 0 评论 -
java架构师面试核心问题
java架构师面试核心问题源码与视屏讲解同步,但都不是最重要的(具体实现)最重要的是快速过书,然后回退一遍画圈,重思想一些特别的实现只要是源码能发布就发布。视屏讲解里的和源码配合发布,不是源码的不发布。第一部分:java的高质量编码与性能优化详解对象包装器与自动装箱对象包装器类是不可变的,一旦构造了包装器对象,包含在包装器中的内容不会改变。因为Java方法都是值传递......原创 2019-09-10 16:00:15 · 483 阅读 · 0 评论 -
Java面试必知必问
Java面试题01.面试的整体流程Java面试题02.java的垮平台原理(跨平台的JAVA运行环境()&JVM(不同版本的虚拟机,屏蔽底层差异)&按操作码助记符排列的指令集&)Java面试题03.搭建一个java的开发环境(配置Web应用服务器Tomcat (web服务器)&下载JDK开发工具包(Java能跑起来,Java_HOME,)&)...原创 2020-03-31 06:47:00 · 357 阅读 · 0 评论 -
java面试汇总
java面试汇总基础篇1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。2、Java有没有goto? java中的保留字,现在没有在java中使用。3、说说&和&&的区别。 &和&&都可以用作逻辑与...原创 2019-03-12 13:18:44 · 1491 阅读 · 0 评论 -
Java面试题合集
实现通过类的权限定名获取该类的二进制字节流的代码块叫做类加载器。主要有一下四种类加载器:原创 2024-05-21 08:02:54 · 93 阅读 · 0 评论 -
Java开发环境搭建(附VMware与IDEAL安装包及虚拟机环境)
虚拟机环境:javaweb项目:Maven项目:下载地址:Java Downloads | Oracle 下载好工具软件包,我的是64位的。下载后 JDK 的安装根据提示进行,还有安装 JDK 的时候也会安装 JRE,一并安装就可以了。安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为 C:\Program Files (x86)\Java\jdk1.8.0_91。安装完成后,右击"我的电脑",点击"属性",选择"高级系统设置":选择"高级"选项卡,点击"环境变量":然后就会出现如下图所原创 2024-12-04 08:32:05 · 105 阅读 · 0 评论 -
Groovy语言详解
Groovy是一种基于Java平台的面向对象语言。 Groovy 1.0于2007年1月2日发布,其中Groovy 2.4是当前的主要版本。 Groovy通过Apache License v 2.0发布。Groovy中有以下特点:Groovy的官方网站是The Apache Groovy programming language有多种方式来获得的Groovy环境设置。下载和安装: -进入该链接www.groovy-lang.org/download.html获得Windows安装程序部分。启动Groovy安原创 2022-10-29 11:38:04 · 6511 阅读 · 2 评论 -
微信开发与代码的编写(二)
微信开发与代码的编写(二)普通消息的接收和回复微信公众平台消息管理接口介绍 要实现微信公众号的普通消息的接收和回复,我们需要先熟悉微信公众平台API中消息接口部分,点此进入,点击后将进入到【消息管理】部分,如下图所示: 对于普通消息的接收和回复我们只需要关注上图中的"接收消息——接收普通消息"和"发送消息——被动回复消息"消息接收 先来说说接收消息, 当...原创 2019-08-27 07:58:07 · 643 阅读 · 0 评论 -
微信开发与代码的编写(一)
微信开发与代码的编写(一)微信开发环境的搭建目前移动开发处于比较火的的趋势,很多的开发者都跃跃欲试,目前移动App开发领域主要分为以下几种类型 我在平时的工作中接触得比较多的就是基于Android的Native App开发和基于微信公众号的Light App开发,今天就来带领大家快速进入微信公众号的开发领域.微信开发环境搭建 工欲善其事,必先利其器。要做微信公众号开...原创 2019-08-27 07:57:45 · 3330 阅读 · 0 评论 -
Mybatis-Plus+SpringBoot框架详解
SpringBoot 提供了一种快速使用 Spring 的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。2014 年 4 月,Spring Boot 1.0.0 发布,并作为 Spring 的顶级项目之一。MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。或Redirect无侵入。原创 2022-10-28 22:33:05 · 10707 阅读 · 1 评论 -
Spring+SpringMVC+Mybatis SSM框架详解
JDBC其实就是 Java 官方提供的一套规范(接口),用于帮助开发人员快速实现不同关系型数据库的连接。程序运行的时候,数据都是在内存中的。当程序终止的时候,通常都需要将数据保存到磁盘上,无论是保存到本地磁盘,还是通过网络保存到服务器上,最终都会将数据写入磁盘文件。而如何定义数据的存储格式就是一个大问题。原创 2022-10-28 17:08:33 · 3086 阅读 · 2 评论 -
Java Web 开发详解
Web 在英文中的含义是网状物、网络。在计算机领域,它通常指的是后者,即网络。像WWW是由 3 个单词组成的,即World Wide Web,中文含义是万维网。他们的出现都是为了让我们在网络的世界中获取资源,这些资源的存放之处,我们称之为网站。我们通过输入网站的地址(即网址),就可以访问网站中提供的资源。在网上我们能访问到的内容全是资源(不区分局域网还是广域网)。只不过,不同类型的资源展示的效果不一样。静态资源。原创 2022-10-28 11:09:32 · 10416 阅读 · 6 评论 -
WebService开发与代码的编写
WebService开发与代码的编写大家或多或少都听过 WebService(Web服务),有一段时间很多计算机期刊、书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成 分。但是不得不承认的是WebService真的是一门新兴和有前途的技术,那么WebService到底是什么?何时应该用? 当前的应用程序开发逐步的呈现了两种迥然不同的倾向:一种是基于浏览器...原创 2019-08-26 00:04:11 · 1166 阅读 · 0 评论 -
高德地图API的开发与代码编写
高德地图API的开发与代码编写高德地图底层源码/** 高德autonavi 地图API Define:begin */var AutoNaviMap = function(mapOption){ this.map = null; //高德autonavi地图对象 this.mapWrap = mapOption.mapWrap; //...原创 2018-11-22 06:08:37 · 3573 阅读 · 0 评论 -
城建坐标与经纬度转换工具
部分底层核心源码需要引入的Jar包为: CoodinateCover.jar可在csdn自行搜索CoodinateCover.javapackage PkgCover;import java.io.PrintStream;public class CoodinateCover{ private GaussProjection _GP; private double ...原创 2018-11-25 11:58:46 · 9846 阅读 · 11 评论 -
jpush-web端向手机端消息推送代码编写
jpush-web端向手机端消息推送代码编写需要引入的jar包jpush-client-3.3.3 已经上传到优快云可自行下载PushUtilsimport java.util.HashMap;import java.util.Map;import cn.jpush.api.JPushClient;import cn.jpush.api.push.PushResult;...原创 2018-07-01 11:44:18 · 920 阅读 · 0 评论 -
Excel poi的使用
Excel poi的使用常用API创建工作薄和创建新Sheet页,创建单元格 public static void main(String[] args) throws Exception{ Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿 Sheet sheet=wb.createSheet("第一个Sheet页"); // 创建第...原创 2018-12-09 10:53:58 · 2269 阅读 · 0 评论 -
java性能优化实践
避免HashMap多次进行了hash重构,扩容是一件很耗费性能的事,在默认中initialCapacity只有16,而loadFactor是 0.75,需要多大的容量,你最好能准确的估计你所需要的最佳大小,同样的Hashtable,Vectors也是一样的道理。尽量避免在经常调用的方法,循环中new对象,由于系统不仅要花费时间来创建对象,而且还要花时间对这些对象进行垃圾回收和处理,在我们可以控制的范围内,最大限度地重用对象,最好能用基本的数据类型或数组来替代对象。clone()方法不会调用任何类构造函数。原创 2019-06-29 10:47:04 · 456 阅读 · 1 评论 -
Java应用程序性能分析与调优实践
JVM是Java Virtual Machine(Java虚拟机)的英文简写,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java编程语言在引入了Java虚拟机后,使得Java应用程序可以在不同操作系统平台上运行,而不需要再次重新编译。Java编程语言通过使用Java虚拟机屏蔽了与具体操作系统平台相关的信息,保证了编译后的应用程序的平台兼容性,使得Java应用程序只需编译生成在Java虚拟机上运行的目标代码(字节码),就可以在不同的操作系统上部署和运行。原创 2022-11-01 18:24:18 · 683 阅读 · 0 评论 -
Java GC性能分析与调优实战
在Thread Dump中,有一些 JVM内部的后台线程来执行,譬如垃圾回收或者低内存的检测等等任务,这些线程往往在 JVM初始化的时候就存在,如下所示:1. HotSpot VM Thread被HotSpot VM管理的内部线程为了完成内部本地操作,一般来说不需要担心它们,除非CPU很高。2. HotSpot GC Thread当使用HotSpot parallel GC,HotSpot VM默认创建一定数目的GC thread。当面对过多GC,内存泄露等问题时,这些是关键的数据。使用nati原创 2022-07-22 14:33:50 · 635 阅读 · 0 评论 -
Java Tread Dump性能分析与调优实战
CPU核心数和线程数的关系 核心数:线程数=1:1 ;使用了超线程技术后---> 1:2。CPU时间片轮转机制 又称RR调度,会导致上下文切换。什么是进程和线程 进程:程序运行资源分配的最小单位,进程内部有多个线程,会共享这个进程的资源。 线程:CPU调度的最小单位,必须依赖进程而存在。澄清并行和并发 并行:同一时刻,可以同时处理事情的能力。 并发:与单位时间相关,在单位时间内可以处理事情的能力。高并发编程的意义、好处和注意事项 好处:充分利用cpu的资源、加快用户响应的时间,程序模块化,异步原创 2023-12-29 07:55:29 · 900 阅读 · 0 评论 -
Java应用CPU飙升故障排查实战(附故障定位脚本)
Java中CPU占用过高是一个常见的问题,可能是由于线程过多、死循环、长时间的阻塞、死锁、GC频繁等原因导致的。可以通过查看系统负载、使用性能分析工具、原生工具、查看日志信息和进行代码审查等方法进行分析。对于解决CPU占用过高的问题,可以通过线程池管理、优化死循环、异步操作、优化资源管理、JVM参数调优、代码优化、代码审查和测试等方法来实现。通过以上的方法和优化措施,可以提高Java程序的性能和CPU利用率。原创 2024-11-23 06:07:32 · 1117 阅读 · 0 评论 -
Java应用导致CPU负载过高调优案例
综合分析得出如下结论:要获得更高、更稳定的性能,单一的Tomcat应用服务器有时会无法满足需求,因此要结合Mod_JK模块运行基于Tomcat的负载均衡系统,这样前端由Apache负责用户请求的调度,后端又多个Tomcat负责动态应用的解析操作,通过将负载均分配给多个Tomcat服务器,网站的整体性能会有一个质的提升。Tomcat底层是通过JVM运行的,JVM在操作系统中是作为一个进程存在的,而java中的所有线程在JVM进程中,但是CPU调度的是进程中的线程。两块2TB磁盘做数据盘。原创 2022-12-29 10:27:50 · 793 阅读 · 0 评论 -
java程序CPU占满故障排查实战(附监控脚本)
JCMD:JCMD是一个多功能的工具,它是一个运用更为全面的工具,可用于获取目标 Java 进程的性能统计、内存使用、垃圾收集、线程堆栈、JVM 运行时间,GC、导出线程信息、堆信息等、简单理解为它可以直接使用相关的名称获取信息。但只会给出一个重复类名,如果重复类比较多时,上面打包/报错/排查会要进行多次,而Android的打包比较费时,这个过程比较麻烦,希望可以一次把所有重复类都列出来,一起排查掉。通过分析线程转储快照,可以了解Java应用程序中各个线程的状态、堆栈跟踪信息以及可能存在的死锁或性能问题。原创 2025-01-03 07:05:42 · 59 阅读 · 0 评论 -
Java Thread dump 排障案例
方案*一个请求过程中多次dump。*对比多次dump文件的runnable线程,如果执行的方法有比较大变化,说明比较正常。如果在执行同一个方法,就有一些问题了。方案*使用命令top-H-ppid(pid为被测系统的进程号),找到导致cpu高的线程id。上述Top命令找到的线程id,对应着dumpthread信息中线程的nid,只不过一个是十进制,一个是十六进制。*在threaddump中,根据top命令查找的线程id,查找对应的线程堆栈信息。方案方案。...原创 2022-07-22 15:58:03 · 556 阅读 · 0 评论 -
JVM垃圾收集器详解
GC是Garbage Collection,即垃圾回收。新生成的对象首先存放在生成区,当生成区满了,触发Minor GC,存活下来的对象转移到Survivor0,即FromSpace,Survivor0区满后触发执行Minor GC,存活对象移动到Suvivor1区,即ToSpace,经过多次Minor GC仍然存活的对象转移到老年代。所以老年代存储的是长期活动的对象,当老年代满了会触发Major GC。原创 2023-12-29 12:54:41 · 874 阅读 · 0 评论 -
JVM类加载过程详解
除了上面三个自带的以外,用户还能制定自己的类加载器,但是所有自定义的类加载器都应该继承自java.lang.ClassLoader。比如热部署、tomcat都会用到自定义类加载器。在java的日常应用程序开发中,类的加载几乎是由上述3种类加载器相互配合执行的,在必要时,我们还可以自定义类加载器,来定制类的加载方式。为什仫要自定义类加载器?1. 隔离加载类2. 修改类加载的方式3. 扩展加载源4. 防止源码泄露用户自定义类加载器实现步骤:原创 2023-12-29 09:57:35 · 1069 阅读 · 0 评论 -
JVM内存结构详解
Java程序在运行时,会为JVM单独划出一块内存区域,而这块内存区域又可以再次划分出一块运行时数据区,运行时数据区域大致可以分为五个部分:JVM逻辑内存模型:JDK1.8 内存模型: JVM内存会划分为堆内存和非堆内存,堆内存中也会划分为年轻代和老年代,而非堆内存则为永久代。新生代Young和老年代Old默认占比是1:3。年轻代又会分为Eden和Survivor区,Survivor也会分为FromPlace和ToPlace,Eden、FromPlace和ToPlace的默认占比为 8:1:1。内存模型要点:原创 2023-12-29 13:44:04 · 1107 阅读 · 0 评论 -
JVM虚拟机技术原理与实现
Java是Sun公司推出的Java语言和Java平台的总称,在操作系统中安装Java平台后Java应用程序即可直接运行。Java程序被编译成字节码解释执行,使Java程序与平台无关。Java是一种技术,由Java编程语言、Java类文件格式、Java虚拟机(JVM)和Java API组成。JVM是Java 技术的核心,必须在指定的机器或者设备中安装部署JVM后才能够运行Java 程序。原创 2023-01-17 07:03:39 · 543 阅读 · 0 评论 -
JVM概述与JVM常用命令
JVM是Java Virtual Machine(Java虚拟机)的缩写,简单来说JVM是用来解析和运行Java程序的。虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。原创 2023-12-29 09:55:52 · 928 阅读 · 0 评论 -
FastDFS,Redis,Solr,ActiveMQ核心技术整合六
02.商品分类选择-分析-前端js_03.商品分类选择-分析-数据库_(JJTree渲染过程解析(parent_id为0就是父节点,is_parent为1说明下面有子节点,state1正常2删除。tree组件有ztree,异步控件树每个节点都有id,展开节点向服务端发送请求,请求检索子节点列表,参数当前节点的id,服务端响应json数据,)&)04.商品分类选择-Service...原创 2020-04-04 14:34:11 · 553 阅读 · 0 评论 -
FastDFS,Redis,Solr,ActiveMQ核心技术整合五
02.商品分类选择-分析-前端js_03.商品分类选择-分析-数据库_(JJTree渲染过程解析(parent_id为0就是父节点,is_parent为1说明下面有子节点,state1正常2删除。tree组件有ztree,异步控件树每个节点都有id,展开节点向服务端发送请求,请求检索子节点列表,参数当前节点的id,服务端响应json数据,)&)04.商品分类选择-Service...原创 2020-04-04 14:16:18 · 1474 阅读 · 0 评论 -
FastDFS,Redis,Solr,ActiveMQ核心技术整合四
02.商品分类选择-分析-前端js_03.商品分类选择-分析-数据库_(JJTree渲染过程解析(parent_id为0就是父节点,is_parent为1说明下面有子节点,state1正常2删除。tree组件有ztree,异步控件树每个节点都有id,展开节点向服务端发送请求,请求检索子节点列表,参数当前节点的id,服务端响应json数据,)&)04.商品分类选择-Service...原创 2020-04-04 13:55:48 · 529 阅读 · 0 评论 -
FastDFS,Redis,Solr,ActiveMQ核心技术整合三
ioi02.商品分类选择-分析-前端js_03.商品分类选择-分析-数据库_(JJTree渲染过程解析(parent_id为0就是父节点,is_parent为1说明下面有子节点,state1正常2删除。tree组件有ztree,异步控件树每个节点都有id,展开节点向服务端发送请求,请求检索子节点列表,参数当前节点的id,服务端响应json数据,)&)04.商品分类选择-Se...原创 2020-04-04 13:44:27 · 1074 阅读 · 0 评论 -
FastDFS,Redis,Solr,ActiveMQ核心技术整合二(2)
02.商品分类选择-分析-前端js_03.商品分类选择-分析-数据库_(JJTree渲染过程解析(parent_id为0就是父节点,is_parent为1说明下面有子节点,state1正常2删除。tree组件有ztree,异步控件树每个节点都有id,展开节点向服务端发送请求,请求检索子节点列表,参数当前节点的id,服务端响应json数据,)&)04.商品分类选择-Service...原创 2020-04-04 13:59:01 · 565 阅读 · 0 评论 -
FastDFS,Redis,Solr,ActiveMQ核心技术整合二(1)
02.商品分类选择-分析-前端js_03.商品分类选择-分析-数据库_(JJTree渲染过程解析(parent_id为0就是父节点,is_parent为1说明下面有子节点,state1正常2删除。tree组件有ztree,异步控件树每个节点都有id,展开节点向服务端发送请求,请求检索子节点列表,参数当前节点的id,服务端响应json数据,)&)04.商品分类选择-Service...原创 2020-04-04 13:46:00 · 22071 阅读 · 0 评论 -
FastDFS,Redis,Solr,ActiveMQ核心技术整合一
02.商品分类选择-分析-前端js_03.商品分类选择-分析-数据库_(JJTree渲染过程解析(parent_id为0就是父节点,is_parent为1说明下面有子节点,state1正常2删除。tree组件有ztree,异步控件树每个节点都有id,展开节点向服务端发送请求,请求检索子节点列表,参数当前节点的id,服务端响应json数据,)&)04.商品分类选择-Service...原创 2020-04-04 12:58:59 · 1495 阅读 · 0 评论 -
Redis与Java交互
jedis是一款用于java连接redis,并提供对应操作API的工具,有点类似于jdbc。原创 2022-09-02 15:07:24 · 856 阅读 · 0 评论 -
redis获取与设置用户缓存信息
redis获取与设置用户缓存信息import java.util.List;public class SessionData { private String token; private String appid; private int userId; private String userName; private int orgId; private String...原创 2018-10-23 19:00:18 · 6649 阅读 · 0 评论 -
JMS-JAVA消息服务
JMSJAVA消息服务,是应用程序接口中关于面向消息中间件的API,用于两个应用程序之间,或分布式系统中发送消息,进行异步通信。JMS消息两种类型点对点 消息发送给一个单独的使用者。点对点消息往往与队列相关联发布/订阅 支持事件驱动模型,消息生产者与消费者都参与消息的传递。生产者发布事件而使用者订阅感兴趣的事件,并使用事件。安装ActiveMQ开源消息总线http://ac...原创 2018-08-26 12:03:25 · 234 阅读 · 0 评论