java
文章平均质量分 89
包括javaSE,javaEE、java常用API、jvm和java常用工具包的知识
阿无,
这个作者很懒,什么都没留下…
展开
-
java之juc之线程池
dubbo直接继承的 AbortPolicy输出了一条警告级别的日志,日志内容为线程池的详细设置参数,以及线程池当前的状态,还有当前拒绝任务的一些详细信息。可以说,这条日志,使用dubbo的有过生产运维经验的或多或少是见过的,这个日志简直就是日志打印的典范,其他的日志打印的典范还有spring。得益于这么详细的日志,可以很容易定位到问题所在输出当前线程堆栈详情,这个太有用了,当你通过上面的日志信息还不能定位问题时,案发现场的dump线程上下文信息就是你发现问题的救命稻草,这个可以参考。原创 2024-08-25 15:09:27 · 541 阅读 · 0 评论 -
QPS、TPS、RT、并发数、吞吐量分别是什么意思,并发量如何估算
我讲的是六十年代,那个时代是反对白专,缺少技术性的书籍,不像今天这么多书籍,还有互联网,青年人应珍惜这个机会。在网络上,思想的碰撞是全球化的,碰撞的火花也是在时代前沿的。它推动着一个庞大的群体在创造世界,世界的进步速度由此加快,应该是万众力拔山兮。擦亮花火、共创未来——任正非在“难题揭榜”花火奖座谈会上的讲话。首先,他们都是高并发系统中的系统指标。转载 2024-07-12 15:14:47 · 83 阅读 · 0 评论 -
java之juc
juc是java.util.current的简写,意思是并发编程。原创 2023-07-30 21:41:26 · 375 阅读 · 0 评论 -
java数组和集合
数组定义数组数组就是存储数据长度固定的容器,保证数据的数据类型一致。数组中的默认初始化值数组类型默认值备注整数数组0小数数组0.0字符数组\u0000unicode编码 空格布尔数组false引用数组nullpublic static void main(String[] args) { // 初始化数组长度 int[] arrayA = new int[3]; // 初始化数组数据 int[原创 2022-02-26 15:37:02 · 640 阅读 · 0 评论 -
java之juc二
因为在不同的硬件生产商和不同的操作系统下,内存的访问逻辑有一定的差异,结果就是当你的代码在某个系统环境下运行良好,并且线程安全,但是换了个系统就出现各种问题。内存交互操作有8种,虚拟机实现必须保证每一个操作都是原子的,不可在分的(对于double和long类型的变量来说,load、store、read和write操作在某些平台上允许例外)如果对一个变量进行lock操作,会清空所有工作内存中此变量的值,在执行引擎使用这个变量前,必须重新load或assign操作初始化变量的值。线程、工作内存、主内存。原创 2023-08-16 18:56:36 · 198 阅读 · 0 评论 -
BigDecimal
随着计算复杂,用户需求变大,传统取整不能满足用户需求,计算精度同样需要更加精确。根本原因是:十进制值通常没有完全相同的二进制表示形式;十进制数的二进制表示形式可能不精确。只能无限接近于那个值。特别是金融项目,出现 0.30000000000000004 体验不是特别好。还有如果需要对金额,进行四舍五入,保留2位。Math.round() 不能满足事件需求所以 我们才会考虑用 BigDecimal ,解决这些问题。原创 2023-03-23 18:16:14 · 267 阅读 · 0 评论 -
商城系统架构的演变
单体架构应该是我们最先接触到的架构实现了,在单体架构中使用经典的三层模型,即表现层,业务逻辑层和数据访问层。单体架构只适合在应用初期,且访问量比较下的情况下使用,优点是性价比很高,开发速度快,成本低,但缺点也很明显,这时扩展的首先就是考虑服务器的集群处理。转载 2022-10-08 22:31:35 · 220 阅读 · 0 评论 -
javase基础知识 todo有东西需要移动到别的文章
java虚拟机JVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的 运行环境,是Java 最具吸引力的特性之一。我们编写的Java代码,都运行在 JVM 之上。跨平台:任何软件的运行,都必须要运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系 统上,这个特性称为Java语言的跨平台特性。该特性是由JVM实现的,我们编写的程序运行在JVM上,而JVM 运行在操作系统上。Java的虚拟机本身不具备跨平台功能原创 2022-02-25 22:33:06 · 1097 阅读 · 0 评论 -
javase核心知识
static被static修饰的变量或者方法,该类的所有对象都可以使用,和对象无关,依赖于类,内存中只有一份。静态可以调用静态,但是不能调用非静态,非静态可以调用静态;因为静态的内容是随着类而产生的,非静态的内容是随着对象而产生的;静态在前,非静态在后;静态产生的时候还没有非静态。...原创 2022-02-26 20:48:02 · 464 阅读 · 0 评论 -
javase通用类/工具类方法集合
scanner键盘录入next和nextLine方法的区别?next方法获取的字符串中,不能有空格或tabnextLine方法获取的字符串中,能有空格或tabnextLine方法尽量不要和next,nextInt进行混合使用,nextLine方法抢回车public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输原创 2022-02-26 17:30:06 · 426 阅读 · 0 评论 -
java之jdbc
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API。JDBC是Java访问数据库的标准规范,可以为不同的关系型数据库提供统一访问,它由一组用Java语言编写的接口和类组成。JDBC规范(掌握四个核心对象):DriverManager:用于注册驱动Connection: 表示与数据库创建的连接Statement: 操作数据库sql语句的对象ResultSet: 结果集或一张虚拟表...原创 2022-03-16 17:35:23 · 2793 阅读 · 0 评论 -
java之LocalDate
Clock类提供了访问当前日期和时间的方法,Clock 是时区敏感的,可以用来取代 System.currentTimeMillis() 来获取当前的微秒数。某一个特定的时间点也可以使用 Instant 类来表示,Instant 类也可以用来创建老的 java.util.Date 对象。原创 2019-10-11 09:12:04 · 1155 阅读 · 1 评论 -
java反射和java注解
反射框架设计的灵魂框架:半成品软件。可以在框架的基础上进行软件开发,简化编码反射:将java代码的各个组成部分封装为其他对象,可以在程序运行过程中操作这些对象,这就是java的反射机制,如下图。反射的好处:可以在程序运行过程中,操作这些对象。可以解耦,提高程序的可扩展性。获取class对象的方式同一个字节码文件(*.class)在一次程序运行过程中,只会被加载一次,不论通过哪一种方式获取的Class对象都是同一个。// 通过指定的字符串路径获取// 多用于配置文件原创 2022-03-11 16:44:45 · 1715 阅读 · 0 评论 -
java之io
类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。原创 2020-03-22 12:07:39 · 311 阅读 · 1 评论 -
java网络编程
软件结构cs和bs软件结构议)协议分类udp软件结构端口号)tcp客户端与服务端(socket)原创 2020-03-22 22:17:31 · 253 阅读 · 1 评论 -
java异常
javaee之异常和错误原创 2020-07-31 18:59:51 · 329 阅读 · 1 评论 -
java枚举和常量
枚举用法常量在JDK1.5 之前,我们定义常量都是: public static fianl… 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。public enum Color { RED, GREEN, BLANK, YELLOW } switchenum Signal { GREEN, YELLOW, RED } public class TrafficLight { Signal color = Si原创 2022-02-24 19:31:58 · 1437 阅读 · 0 评论 -
java之Stream流
在Java 8中,得益于Lambda所带来的函数式编程,引入了一个全新的Stream概念,用于解决已有集合类库既有的弊端。引言传统集合的多步遍历代码 几乎所有的集合(如 Collection 接口或 Map 接口等)都支持直接或间接的遍历操作。而当我们需要对集合中的元 素进行操作的时候,除了必需的添加、删除、获取外,最典型的就是集合遍历。例如:package com.example.demo;import org.junit.jupiter.api.Test;import org.springf原创 2022-03-08 12:46:02 · 379 阅读 · 0 评论 -
java之函数式接口、Lambda表达式和方法引用
Lambda,在我现在的技术来看,就是为了简化代码的它允许我们将函数当成参数传递给某个方法,或者把代码本身当作数据处理。很多JVM平台上的语言(Groovy、Scala等)从诞生之日就支持Lambda表达式,但是Java开发者没有选择,只能使用匿名内部类代替Lambda表达式。原创 2022-03-06 22:18:37 · 1518 阅读 · 0 评论 -
java8新特性
其中最为核心的是Lambda表达式和Stream API。原创 2022-03-07 17:21:50 · 373 阅读 · 0 评论 -
java之xml
常见的解析开发包(能处理xml的也可以处理html)xml解析原理dom4j常用API原创 2020-04-05 21:07:44 · 282 阅读 · 0 评论 -
java多线程
我们说最常见的一种,就是我们A线程在进入方法后,拿到了count的值,刚把这个值读取出来还没有改变count的值的时候,结果线程B也进来的,那么导致线程A和线程B拿到的count值是一样的。为了保证每个线程都能正常执行原子操作,Java引入了线程同步机制。那么怎么去使用呢?同步代码块,synchronized 关键字可以用于方法中的某个区块中,表示只对这个区块的资源实行互斥访问。同步方法(底层锁是this),在方法上,返回值前加synchronized锁机制。原创 2020-03-08 18:06:41 · 711 阅读 · 0 评论 -
java多线程之ThreadLocal
ThreadLocal翻译成中文比较准确的叫法应该是:线程局部变量。这个玩意有什么用处,或者说为什么要有这么一个东东?先解释一下,在并发编程的时候,成员变量如果不做任何处理其实是线程不安全的,各个线程都在操作同一个变量,显然是不行的,并且我们也知道volatile(这个关键字有点深,有时间看吧)这个关键字也是不能保证线程安全的。那么在有一种情况之下,我们需要满足这样一个条件:变量是同一个,但是每个线程都使用同一个初始值,也就是使用同一个变量的一个新的副本。应用场景当很多线程需要多次使用同一个对象,原创 2020-08-07 23:16:52 · 279 阅读 · 1 评论 -
jsp基础
jsp全名是java server pages,它是建立在Servlet规范之上的动态网页开发技术。在jsp文件中,HTML代码与Java代码共同存在,其中,HTML代码用来实现网页中静态内容的显示,Java代码用来实现网页中动态内容的显示。简单来说:jsp页面可以写java代码,还可以写html代码。jsp执行原理<%@ page import="java.util.Date" %><%@ page import="java.text.SimpleDateFormat" %>原创 2022-05-15 23:15:04 · 564 阅读 · 0 评论 -
内存问题相关
原因函数调用栈太深了,注意代码中是否有了循环调用方法而无法退出的情况原理每一个 JVM 线程都拥有一个私有的 JVM 线程栈,用于存放当前线程的 JVM 栈帧(包括被调用函数的参数、局部变量和返回地址等)。如果某个线程的线程栈空间被耗尽,没有足够资源分配给新创建的栈帧,就会抛出 java.lang.StackOverflowError 错误。线程栈是如何运行的首先给出一个简单的程序调用代码示例,如下所示:public class SimpleExample { public sta原创 2020-09-30 23:53:00 · 820 阅读 · 0 评论 -
java设计模式
1.工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。2.在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,是通过使用一个共同的接口来指向新创建的对象。原创 2020-05-25 13:51:37 · 283 阅读 · 1 评论 -
maven项目架构管理工具
mvn clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。mvn clean install依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段。mvn clean deploy依次执行了clean、resources、compile、testResources、te..原创 2020-05-12 23:04:38 · 139 阅读 · 0 评论 -
java虚拟机
一、Java虚拟机的内存划分为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。方法栈:还有存储局部变量。...转载 2020-02-02 10:53:17 · 554 阅读 · 0 评论 -
jvm常问问题目录
下面是在几个百度搜的jvm的面试题,出现多的频次括号里是频次数量垃圾收集有哪些算法(7)java内存区域(运行时数据区,6)介绍一下CMS,G1收集器(5)JVM的引用类型有哪些?(5)什么是Java虚拟机为什么Java被称作是“平台无关的编程语言”?(4)类加载过程(JVM加载class文件的原理机制?,4)类加载器(4)在JVM中,如何判断一个对象是否死亡?(4)垃圾回收器(4)JVM的常用参数调优你知道哪些? (4)调优工具?(4)Minor GC与Full GC分别在什么原创 2020-09-30 14:18:21 · 127 阅读 · 0 评论 -
Jackson快速入门
package com.mote.jackson; import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import com.fasterxml.jackson.databind.JavaType;import com.fasterxml.jack...转载 2019-10-11 14:37:59 · 303 阅读 · 0 评论 -
java常见异常和项目中所碰到的问题
一、数组操作的常见问题:1.索引越界异常:ArrayIndexOutOfBoundsException 原因:访问数组元素时,给定的索引超出的最大范围(长度-1) 解决方案:不让索引越界2.空指针异常:NullPointerException 原因:引用变量的值为null,表示不再指向对内存中的数组空间,从而就不能访问数组中的元素 解决方案:不让它为null...原创 2020-02-02 10:57:27 · 195 阅读 · 0 评论 -
各种笔试题
一、分析以下需求,并用代码实现:(1)打印由 7, 8, 9 三个数组成的三位数,要求该三位数中任意两位数字不能相同;(2)打印格式最后的三位数字以空格分隔,如 789 798 879 897 978 987。public class Digital { public static void main(String[] args) { //定义数组存放数据 ...转载 2020-03-05 14:14:31 · 357 阅读 · 1 评论