Java疑难杂问③

第十六章 BIRT疑难杂惑清理 第十四十五章还在书写中,先就目前BIRT比较集中的一些疑难杂惑进行解决。 问题一:把runtime包中自带的birt.war发布到Tomcat6上,运行后,首页面可以显示,但当点击" View Example "时,加载报表就报错.错误内容如下: 或者在运行过程中出现:Caused by: java.lang.OutOfMemoryError: PermGen spac 阅读详情

常见负载均衡策略

标题轮询(Round Robin)
  轮询的实现方式比较简单,就是将请求以此分发到后端服务器中,将所有的请求均匀分配,均匀分配的坏处是通常后台服务器性能有差异,有时候希望性能较好的服务器可以多承担些请求,该策略无法满足需求。这个不适合对长连接和命中率有要求的场景。

加强轮询(Weighted Round Robin)
  这种策略是对轮询策略的优化,对每个后端服务器设置一个权重值,根据权重值决定请求的分配比例,这种做法解决了轮询策略的不足,但是该权限值需要手动配置,没有办法自动动态调节,同样不适合对长连接和命中率有要求的场景。

hash算法
  通过ip url等信息计算hash值,然后对服务器的数量取模,相同的请求会请求到同一个后端服务器中。该算法无法解决热点请求,会把某个时间段的热点请求路由到某个单机上,造成雪崩效应,同时在扩中和节点宕机时发生命中率急剧降低的问题(hash算法导致),该策略适合维护长连接和提高命中率。

随机Random
  根据随机算法,将请求随机分配到后端服务器中,请求的均匀请求依赖于随机算法,该实现方式较为简单,常常可以配合处理一些极端的请求,例如热点请求情况。不适合对命中率有要求的场景。

一致性hash算法
  对hash 算法的优化,可以有效的解决宕机和扩充造成的命中率急剧降低的问题。

最小连接数 Least Connection
  通过活动来估计后端服务器的负载,把请求分配给活动连接数最小的后端服务器,算法比较智能,但是需要额外的资源维护后端服务器的连接列表。

加权最小连接数 Weighted Least Connection
  对Least Connection策略的优化,通过加权的方式优化Least Connection的性能,对性能较好的后端服务器设置较高的权重,承担更多的链接负载。

最短响应时间 Least Response Time
  该策略的意思就是将请求分配给平均响应时间最短的后端服务器,平均时间可以通过ping或者正常的响应时间来获取 。

堆外内存

  堆外内存可以通过Unsafe和NIO包下的ByteBuffer来操作堆外内存。堆外内存会溢出,并且其垃圾回收依赖于代码显式调用System.gc()。JVM在堆内只保存堆外内存的引用,用DirectByteBuffer对象来表示。每个DirectByteBuffer对象在初始化时,都会创建一个对应的Cleaner对象。这个Cleaner对象会在合适的时候执行unsafe.freeMemory(address),从而回收这块堆外内存。当DirectByteBuffer对象在某次Young GC中被回收,只有Cleaner对象知道堆外内存的地址。当下一次Full GC执行时,Cleaner对象会将自身Cleaner链表上删除,并触发clean方法清理堆外内存。此时,堆外内存将被回收,Cleaner对象也将在下次Young GC时被回收。如果JVM一直没有执行Full GC的话,无法触发Cleaner对象执行clean方法,从而堆外内存也一直得不到释放。使用堆外内存可以减少GC的压力,对于Spark来说,能精准控制内存大小。

对象在堆外也需要序列化
在这里插入图片描述
堆内对象写入磁盘需要四次拷贝,堆外使用mmMAP零拷贝,需要两次拷贝

JVM client模式和Server模式的区别

  最主要的差别在于:-Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升。原因是:当虚拟机运行在-client模式的时候,使用的是一个代号为C1的轻量级编译器,而-server模式启动的虚拟机采用相对重量级,代号为C2的编译器。C2比C1编译器编译的相对彻底,服务起来之后,性能更高。

private public protected

  public:具有最大的访问权限,可以访问任何一个在classpath下的类、接口、异常等。它往往用于对外的情况,也就是对象或类对外的一种接口的形式。
  protected:主要的作用就是用来保护子类的。它的含义在于子类可以用它修饰的成员,其他的不可以,它相当于传递给子类的一种继承的东西。
  default:有时候也称为friendly,它是针对本包访问而设计的,任何处于本包下的类、接口、异常等,都可以相互访问,即使是父类没有用protected修饰的成员也可以。
  private:访问权限仅限于类的内部,是一种封装的体现,例如,大多数成员变量都是修饰符为private的,它们不希望被其他任何外部的类访问。

Netty应用场景

  阿里分布式服务框架 Dubbo 的 RPC 框架使用 Dubbo 协议进行节点间通信,Dubbo 协议默认使用 Netty 作为基础通信组件,用于实现各进程节点之间的内部通信。其中,服务提供者和服务消费者之间,服务提供者、服务消费者和性能统计节点之间使用 Netty 进行异步/同步通信。除了 Dubbo 之外,淘宝的消息中间件 RocketMQ 的消息生产者和消息消费者之间,也采用 Netty 进行高性能、异步通信。

大数据领域
  Hadoop 的高性能通信和序列化组件 Avro 的 RPC 框架,默认采用 Netty 进行跨节点通信,它的 Netty Service 基于 Netty 框架二次封装实现。大数据计算往往采用多个计算节点和一个/N个汇总节点进行分布式部署,各节点之间存在海量的数据交换。由于 Netty 的综合性能是目前各个成熟 NIO 框架中最高的,因此,往往会被选中用作大数据各节点间的通信。

Spring 如何解决循环依赖的问题

三级缓存
https://w.cnblogs.com/nullllun/p/9154133.html
https://blog.youkuaiyun.com/w1014074794/article/details/88406330
https://zhuanlan.zhihu.com/p/84267654
https://www.cnblogs.com/xiaoxing/p/10762686.html#link-1

Long String对象怎么计算hashcode

  Long 64 位 int 34 位,而 hash值是 int 类型,因此需要将 64位转化为小于等于32位。Long 的 hash 值是通过将前半段和后半段异或得到的。让高位和低位都能够参与到 hash 运算中,让结果离散。
  String类的hash code的值为val[0]*31^(n-1) + val[1]*31^(n-2) + … + val[n-1],其中val是字符串对应的char数组。所以字符串内容一样的String对象,调用hashCode()返回的值也是一样的。但反过来,返回的hashCode()一样时,其字符串内容不一定一样,因为上面的方法计算hashCode时可能会发生位数溢出。

JVM堆栈和os堆栈有什么关系?

  这两个不是一个东西,JVM的堆栈是跑在OS堆栈上的,因为进程跑在OS堆栈上,进程在OS堆栈上有分配空间。OS的堆栈在虚拟内存上,堆和栈在OS里是两片空间,这两片空间是指虚拟内存的空间。Java的堆栈是JVM划分出来的东西,JVM在申请空间的时候要去OS的文件映射区去申请空间的。然后JVM定义申请的空间的含义,OS不管它怎么定义。

多线程下一个线程崩溃了为什么会导致其他线程都崩溃

  一个线程OOM之后,这个时候线程会被Kill掉,然后抛出OutOfMemory异常信息。因为栈上的空间是线程私有的,所以线程被Kill掉之后,栈上的空间就被释放了,但是堆空间是共享的,被Kill掉的线程中的对象可能被该线程之外的其他线程引用,这个时候这部分对象就没有办法被GC掉,其他线程如果此时需要申请资源但是又资源又不足,那么此时其他线程就不能运行。

硬中断 软中断

1、软中断是执行中断指令产生的,而硬中断是由外设引发的。
2、硬中断的中断号是由中断控制器提供的,软中断的中断号由指令直接指出,无需使用中断控制器。
3、硬中断是可屏蔽的,软中断不可屏蔽。
4、硬中断处理程序要确保它能快速地完成任务,这样程序执行时才不会等待较长时间,称为上半部。
5、软中断处理硬中断未完成的工作,是一种推后执行的机制,属于下半部。

磁盘空间还有10个G,但是现在写数据却写不进去了,这可能是因为什么?

  文件数据都储存在“块”中,每一个文件都有对应的inode储存元数据,inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。每个inode节点的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定,一般是每1KB或每2KB就设置一个inode。由于每个文件都必须有一个inode,因此有可能发生inode已经用光,但是硬盘还未存满的情况。这时,就无法在硬盘上创建新文件。

【技术拆解】Illumina边合成边测序(SBS)核心流程全解析 | 从文库构建到数据分析 本文深入解析了Illumina边合成边测序(SBS)技术的完整流程。从DNA样本的文库构建(片段化、加接头、扩增),到Flowcell上的簇生成(桥式PCR),再到核心的边合成边测序(SBS)循环(荧光标记、可逆终止),最后简述了从原始数据到生物学洞见的数据分析步骤,为理解这一主流高通量测序技术提供了清晰的框架。 阅读详情

相关推荐

SFF-8654接口引脚定义全解析:从SAS到U.2的高速硬件连接核心

在高速数据存储与传输领域,接口标准是连接主机与存储设备、确保信号完整性与协议互通性的物理基础。其核心原理在于通过精确定义的物理引脚和电气特性,承载不同的高速串行通信协议,如SAS和PCIe。这类高密度连接器的技术价值在于以紧凑的形态支持多协议兼容与高速率传输,满足了企业级存储、高性能计算对带宽和可靠性的苛刻要求。典型的应用场景包括服务器硬盘背板连接、NVMe U.2固态硬盘直连以及外部存储扩展。本文聚焦于SFF-8654(亦称Mini SAS HD)这一关键接口,深入剖析其引脚定义、信号分区(如高速数据通道

weixin_29188043的博客 714

手写堆heap(STL的heap算法)

大家都很强, 可与之共勉 。发现自己一千多行的模板有问题23333template < class T > class Heap { private : T h [N] ; int len ; public : Heap ( ) { len = 0 ; } inline void push ( const T&

Lazer2001 737

RTX 4060笔记本也能跑!保姆级教程:用Ollama在Windows上部署DeepSeek-R1-8B模型

本文详细介绍了如何在RTX 4060笔记本上通过Ollama本地部署DeepSeek-R1-8B模型,提供从环境配置到性能调优的全流程优化指南。针对笔记本用户的显存、散热等问题,给出了量化模型选择、启动参数优化及散热解决方案,帮助用户在消费级硬件上高效运行大语言模型。

weixin_28745067的博客 525

手写堆(heap)

手写堆(优先队列)

songziqi98的博客 3523

NVIDIA DGX Spark实战指南:从开箱到部署200B参数大模型

本文详细介绍了NVIDIA DGX Spark桌面AI超级计算机的开箱体验与实战部署指南。文章深入解析了其Grace Blackwell架构与128GB统一内存的核心优势,并逐步演示了从系统初始化、运行200B参数大模型到进行QLoRA微调的全过程。该设备将高达1 PetaFLOP的AI算力浓缩于桌面,为开发者和研究团队提供了本地化、高性能的AI开发与部署一体化解决方案。

weixin_29274969的博客 2231

【深度学习】脸部修复,CodeFormer,论文,实战

Blind face restoration是一个高度 ill-posed 的问题,通常需要辅助引导来 1) 改善从降级输入到期望输出的映射,或者 2) 补充在输入中丢失的高质量细节。在本文中,我们展示了在一个小的代理空间中学到的离散码本先验可以通过将盲目的面部恢复建模为 a code prediction task来大大减少恢复映射的不确定性和模糊性,同时为生成高质量面部提供丰富的视觉元素。

q742971636的博客 2994

Java疑难杂问②

配置成功的那一刻感觉很美好问题的分析过程及解决 问题的分析过程及解决 这几天学习spark集群,需要用到zk,但是我配置集群的时候,在执行./zkServer.sh start jps命令没有问题 但是./zkServer.sh status时会出现: Error contacting service. It is probably not running 查看bin下的zookeeper.o...

ThreeAspects的博客 2646

第六:Charles抓包-苹果手机抓包

【代码】第六:Charles抓包-苹果手机抓包。

欢迎来到本博客! 1658

Java疑难杂问①

  泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,即所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,以提高代码的重用率。   Java 的泛型是伪泛型, 运行期的泛型类型,被擦除了,因此,在运行期,ArrayList< String> 和 ArrayList< Integer> 是相同的类型。JVM并不知道泛型的存在,因为泛型在编

ThreeAspects的博客 728

【人工智能的数学基础】最优传输(Optimal Transport)问题与Wasserstein距离

代表两堆石子,则问题等价于如何移动一堆石子,通过最小的累积移动距离把它堆成另外一堆石子。的不同位置分配的值。为离散型概率分布,则该优化问题可以表示为矩阵形式。表示寻找总运输成本最小的方案。放大后的上确界不会小于原来的上确界,因此不妨取。具有相同的概率分布。是概率分布,因此积分可以写作采样形式。描述了一种可行的运输方案,表示应该从位置。则最优传输问题的目标函数可以用列向量。对于一个线性规划问题,总可以写出其。的所有可能联合分布的集合,下确界。其中矩阵的每一行代表概率分布。表示寻找使得目标函数最大的。

AI天才研究院 6328

SPAD IMX479规格_分辨率

当然IMX479具备IMX459几乎全部的数字架构,但也有一个缺点就是贵,这个让头部的主机厂有些犹豫,毕竟大家都在集中火力想把车载LiDAR玩进千元机。如果用一片IMX479是不太可能实现千元内部的,当然国产也在奋起直追,特别在前面的几家SPAD厂商都具备开发IMX479的实力,但相对来说落地可能更是当下所考虑的,IMX479的迭代是基于IMX459,小编已经注意到国内有一两家已经在挑战479的规格了,如果国产SPAD没有大规模量产就直接流片IMX479的规格,可能就有点忽略市场的反馈闭环。

致力于lidar应用开发 2417

Hadoop疑难杂问

我变强了,也变秃了   ---题记安装jdk下载Hadoop及配置Hadoop环境变量关闭防火墙 安装jdk 若在安装过程中遇到类似问题 bash:javac:command not found 朋友需要重新安装jdk。 【1】卸载原OPENJDK java -version 检测原OPENJDK版本 rpm -qa | grep java 进一步查看JD...

ThreeAspects的博客 1682

S速度曲线轨迹规划(普通变频位置闭环控制算法详细介绍+SCL代码)

位置控制用PD控制器,详细内容介绍请查看下面博客文章:PD控制器算法详细解读_RXXW_Dor的博客-优快云博客鉴于积分和微分在工程上的大量应用,这篇博文主要讲解工程上的如何求导f'(x),导数反映的是函数(信号)的变化率,牛顿也是在研究运动的时候提出了微积分的概念,我们知道反映位移变化的快慢程度是速度v(t),反映速度变化快慢程度的物理量是加速度(速度的变化率)。

RXXW_Dor的博客 3887

HashMap疑难杂问

HashMap到底是插入链表头部还是尾部 在jdk1.8之前是插入头部的,在jdk1.8中是插入尾部的。 分析链表插入的位置,重点是分析HashMap的put方法。 jdk1.6 put方法的代码如下: public V put(K key, V value) { if (key == null) return putForNullKey(value); in...

ThreeAspects的博客 461

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Java学习中的疑难点总结

本文目录前言Java基础疑难点Java面向对象疑难点word版下载 前言   大家好,我是工程小猿!之前在学习Java语言的过程中总是遇到一些问题,比如在看基础知识时,发现它和C语言基本语法差别不大,除了没有C语言中指针的概念和增加内存自动回收从而避免了内存泄漏外,其余基本语法相差无几。但是学习完全部Java语言后发现除了对类C的基础知识熟记外,对 封装 重载 构造方法 继承 接口 多态   ...

工程小猿的博客 1483

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

新手向,代码阅读理解(java杂例)

新手在学习java中会碰到大大小小的疑难杂问,希望我的杂例对你有所启发

weixin_50687417的博客 165

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

合辑 | 面试必备!18篇Java面试疑难点详解

简介:就目前就业环境来看,学习Java软件开发是不会过时的,据各大招聘网站统计,Java程序员的需求10年来一直跃居首位。本节小编汇总了18篇Java面试相关的疑难点解析,知识点+理论详解帮助你稳扎稳打,学好Java不再是难事~ Java数据库开发 1.面试疑难点解析——Java数据库开发(一) 当面试官提问数据库优化及NoSQL使用场景时,该如何回答?在现实的开发环境之中所谓的数据库优...

阿里云开发者 6818

AcWing蓝桥杯AB组辅导课10、疑难杂题

AcWing蓝桥杯AB组辅导课10 前段时间为了在面试中能够应对一些算法题走上了刷题之路,大多数都是在力扣平台刷,目前是400+,再加上到了新学校之后,了解到学校也有组织蓝桥杯相关的程序竞赛,打算再次尝试一下,就想系统学习一下算法(再此之前是主后端工程为主,算法了解不多刷过一小段时间),前段时间也是第一次访问acwing这个平台,感觉上面课程也是比较系统,平台上题量也很多,就打算跟着acwing的课程来走一段路,大家一起共勉加油!目前是打算参加Java组,所以所有的题解都是Java。博客目录索引(持续更新)

每个人都是独一无二的,把握好自己的节奏,跟着自己的心走。 1981

java 疑难杂解

基础语法学习过程中的疑难

chennaji的博客 187

Java疑难点易错点

Java疑难点易错点 目录 Java疑难点易错点 1. 基础 1.1. 正确使用 equals 方法 1.2. 整型包装类值的比较 1.3. BigDecimal 1.3.1. BigDecimal 的用处 1.3.2. BigDecimal 的大小比较 1.3.3. BigDecimal 保留几位小数 1.3.4. BigDecimal 的使用注意事项 1.3.5. 总结 ...

a578413629的博客 219

java疑难杂症解决处

疑难杂症解决处

奔跑的猪皮 293

JAVA疑难问题排查、解决经验总结(Linux系统)

Java疑难问题的排查、解决有一定的步骤可循。大概就是程咬金的三板斧。按照对应的步骤对着问题砍下去,很多问题就都迎刃而解了。接下来,就根据个人的理解和经验将几类问题的解决步骤总结一下。 1 先排查运行环境 首先要强调的是,有些问题不是疑难问题,或是伪疑难问题。其实就是些运行环境的问题,磁盘空间、内存大小、CPU占用、数据库连接、用户权限等问题。如果有人向我反馈某个软件启动不了、启动后运行很慢、启动了但整体功能都不正常等问题,首先会使用df -h命令查磁盘空间,使用free -m命令查内存使用情况,使用top

qq_39142905的博客 888

java疑难31问,入门必备

一、如何实现控制台输入首先,你要清楚一点,Java的I/O是依赖于流的。你用read()方法得到的是一个字符流,也就是说你输入“10回车”,得到的是‘1’、‘0’和‘/n’这三个字符,而不是一个int型的数10。     Java没有提供一种输入方法来从键盘读入一个字符串,然后自动转换为相应的数据类型。要做到这个,要使用类型包装器(type   wrapper):Double、Float、Lo

MiracleWorker的专栏 919

开发中疑难杂怪各类问题整理

本篇用以记录开发中遇到的各类问题,有些是功力不够,有些是经验不足,有些是机制不了解,特整理如下,备忘以用。 1.关于微信公众号程序的 js脚本 变更不生效问题 变更微信公众号所用的js脚本,不生效。后在引用处添加 js版本号,可以正常变更。疑微信存在 js的缓存机制,但过期时间不了解。 具体修改如下: 在网页引用js处添加版本号 xxxxxx...

水月灬清影的博客 340

千问3.5-9B Java安装与环境变量配置疑难解答大全

本文介绍了如何在星图GPU平台上自动化部署千问3.5-9B镜像,快速搭建Java开发环境。该镜像提供了完整的JDK安装与环境变量配置指南,适用于Windows、macOS和Linux系统,帮助开发者解决常见的Java环境配置问题,特别适合初学者快速上手Java开发。

weixin_30533301的博客 346

第九、十讲 复杂DP+疑难杂题

dp

释怀°Believe的博客 540
上一篇: Spark Streaming从Kafka中读数据的两种方式
下一篇: HBase中不建议使用过多列族
K. Bob
博客等级 码龄8年 82粉丝 294原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值