![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 67
define_us
互联网编程/架构设计/数学崇拜
展开
-
G1回收的垃圾排查
G1垃圾回收原创 2022-09-30 14:40:03 · 1906 阅读 · 0 评论 -
java调试和性能监测体系
https://docs.oracle.com/javase/8/docs/technotes/guides/jpda/architecture.html原创 2021-12-27 14:29:18 · 226 阅读 · 0 评论 -
JVM和直接内存(JDK1.8)
一个简单的JVM的对内存的情况如下所示。可以看见,原来在堆中分配的永久代被移动到了meta区。而meta是单独的空间,使用JVM的直接内存。然而用户其实也可以使用直接内存。直接内存:direct/off-heap/native memory ,大家怎么叫都可以。用户可以使用如下方式使用直接内存:使用未公开的UnsafeNIO包下ByteBuffer。`...原创 2021-12-26 17:32:40 · 618 阅读 · 0 评论 -
配置flink环境
下载https://archive.apache.org/dist/flink/flink-1.9.0/我们选择下载flink-1.9.0-bin-scala_2.11.tgz 。从名字上可以看出,需要scala_2.11的环境。如果没有,需要在下面地址下载https://www.scala-lang.org/download/参考下面文档进行安装https://www.jianshu.com/p/d7c94372020c安装本地环境flink支持如下环境LocalEnvironmen原创 2021-05-20 11:48:56 · 322 阅读 · 0 评论 -
flink的物理执行图
https://developer.aliyun.com/article/225618概念https://www.freesion.com/article/4063674538/Task(任务):Task 是一个阶段多个功能相同 subTask 的集合,类似于 Spark 中的 TaskSet。subTask(子任务):subTask 是 Flink 中任务最小执行单元,是一个 Java 类的实例,这个 Java 类中有属性和方法,完成具体的计算逻辑。Operator Chains(算原创 2021-03-29 21:52:35 · 445 阅读 · 0 评论 -
Flink代码阅读之部署方式
客户端提交任务的方式主要有以下几种命令行REST接口SQLpythonscalaJobManager有三种提交任务的模式Application Mode: runs the cluster exclusively for one application. The job’s main method (or client) gets executed on the JobManager. Calling execute/executeAsync multiple times in an .原创 2021-02-08 20:51:44 · 115 阅读 · 0 评论 -
ngnix
转载https://blog.csdn.net/weixin_47082274/article/details/107333450架构简介首先要明白,Nginx 采用的是多进程(单线程) & 多路IO复用模型。使用了 I/O 多路复用技术的 Nginx,就成了”并发事件驱动“的服务器。多进程的工作模式Nginx 在启动后,会有一个 master 进程和多个相互独立的 worker 进程。master 接收来自外界的信号,向各 worker 进程发送信号,每个进程都有可能来处理这个连接。原创 2020-12-27 22:27:31 · 94 阅读 · 0 评论 -
分布式锁的一点看法
分布式锁的主流方案基于数据库基于redis基于zookeeper原创 2020-12-26 21:56:43 · 74 阅读 · 0 评论 -
java中的optional
简介一个避免NPE的神器String isocode = user.getAddress().getCountry().getIsocode().toUpperCase();这行代码一般而言,你只敢向下面这么写if (user != null) { Address address = user.getAddress(); if (address != null) { Country country = address.getCountry(); i原创 2020-12-26 14:34:48 · 85 阅读 · 0 评论 -
guava的LoadingCache原理
用法用户需要覆com.google.common.cache.CacheLoader#reload这个方法。这个方法返回一个 ListenableFuture。这个对象可以用 public static <V> ListenableFutureTask<V> create(Callable<V> callable) { return new ListenableFutureTask<V>(callable); }从一个Callable对象原创 2020-12-24 22:36:29 · 1025 阅读 · 0 评论 -
JAVA集合类之LinkedHashMap
代码原理在HashMap的基础上,在节点上增加了一个前向和后向的指针。使之可以保存插入顺序或者访问顺序(默认是保存插入顺序)原创 2020-12-24 19:23:33 · 74 阅读 · 1 评论 -
MINA中的reactor
启动时SocketAcceptor代码服务启动时将ioHandler和acceptor绑定 IoHandler ioHandler = new DefaultIoHandler(this); try { if (null == bindIP) { acceptor.bind(new InetSocketAddress(port), ioHandler);bind的主要代码如下 synchroniz原创 2020-12-21 22:03:50 · 103 阅读 · 0 评论 -
Spring源代码阅读(2):事务
转载https://blog.csdn.net/weixin_44366439/article/details/90381619原理编程式事务使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。声明式事务是建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。声明式事务最原创 2020-12-11 23:40:51 · 87 阅读 · 0 评论 -
Spring实战之Spring动态加载jar模块和卸载模块
Spring提供了下面这些类来加载外部jar。classPathResorce可以用来加载类路径上的jar。一般推荐使用 classLoader = new UrlClassLoader(new URL[] {resource.getURL()}, parentClassLoader);来创建一个classLoader。其中parentClassLoader可以通过BeanClassLoaderAware从当前Spring上下文中拿到。一般,我们会写一MyClassPa原创 2020-12-11 20:50:19 · 4658 阅读 · 0 评论 -
redis集群的相关问题
Redis主从模式也称为主备模式。是一种高可用的方案。一个主服务器可以有多个从服务器。Redis的自身支持主从复制,只要更改下启动配置即可。从节点可以自动从主节点同步数据,主节点可以自动把读请求转给从节点从而实现读写分离减轻自身压力。但是,主节点如果完蛋了,从节点无法升级为主节点,client也无法自动切换,所以没有高可用的能力。redis配置从服务器的过程脑裂问题如果只有master和slave两个角色,为防止主服务器假死后又复活,但是主从服务器通信又相互中断,这样彼此都不知道对方在提供服务原创 2020-11-25 20:53:58 · 143 阅读 · 0 评论 -
JAVA C# C/C++之比较学:初始化顺序
1、javajava没有全局变量。在包含main类中声明的static final会最先被初始化。在每一个类被实例化的时候,其所包含的static final都会被初始化。然后执行构造函数。java一般采用static final来表示初始化的全局变量。public class TestInitOrder { public static final GlobalParam m_i =原创 2015-11-13 22:12:32 · 387 阅读 · 0 评论 -
JAVA C# C/C++之比较学:参数传递
首先,感谢http://www.cnblogs.com/jacktag/p/3173415.html我们的定义为值传递是传递栈中的值;引用传递是传递栈地址。注意,引用传递不是传递堆中的地址,而是传递堆栈中的地址。1、java在互联网上,大部分认为java是按值传递的。这样的说法不能说是错误的。但是更深层次的理解是,对于java而言,堆栈上只能分配基本类型的存储和对对象的引用。而所有对象原创 2015-11-13 17:28:43 · 515 阅读 · 0 评论 -
J2EE基础教程1--简介
(1)相关概念我们以前在linux操作系统初级教程中,介绍过LAMP架构服务器技术。现在,我们来介绍J2EE。通过J2EE开发的应用程序属于分布式多层应用程序,包括(1)客户层:客户应用,web浏览器的动态网页(含applet)(2)web层: jsp,servlet(3)业务层:EJB (4)企业信息系统层 : 数据库J2EE包含如下构件:运行中,客户端有原创 2015-04-27 10:26:54 · 455 阅读 · 0 评论 -
JAVA基础教程6:运行时类型识别(RTTI)
首先是运行时类型识别的例子:package Pack1;public class Sandbox1{ public static void main(String args[]) { Car myCar = new Car(); Class c1 = myCar.getClass(); System.out.println(c1.g原创 2016-05-23 16:48:01 · 260 阅读 · 0 评论 -
java基础教程1:简介
0——–综述java的源文件目录为.java,编译后的文件为.class。.class文件可以在JVM上运行,本质上来说,java是一个既需要编译器,有需要解释器(JVM)的语言。但是,java也有即时编译的功能,也就是产生和平台相关的机器语言。相比而言,后者的兼容性差,而效率更高。另外要说明的是,java和JavaScript一点关系都没有,后者只是觉得加上java更时髦,所以就自动冠名了。1——原创 2016-05-23 18:54:17 · 291 阅读 · 0 评论 -
java基础教程4 :Gui和绘图
在基础教程1中,我们简单介绍了Gui的设计,这里,我们进行进一步学习转载 2015-06-01 13:25:41 · 552 阅读 · 0 评论 -
java界面中的布局管理器(转载)
转载自http://blog.sina.com.cn/s/blog_6f116c940101alna.html1.BorderLayoutjava.lang.Object--java.awt.BorderLayout将版面划分成东、西、南、北、中五个区域,将添加的组件按指定位置放置。 BorderLayout.EAST BorderLayout.转载 2015-06-03 16:41:25 · 392 阅读 · 0 评论 -
java基础教程7:包
java中包的作用是将功能相关的类和接口组织在一起,同时防止命名冲突,进行访问控制。包也采用树形目录结构。 注意,包和继承并没有什么关系,下面展现了一种java.applet包中类的继承关系。 java.lang包: java.lang.Object类:是所有类的父类 java.lang.Class类:用于运行时对象识别,定义为final(不能继承),构造函数为private(不能手动实例化原创 2016-05-23 18:51:23 · 389 阅读 · 0 评论 -
JAVA C# C/C++之比教学:编译机制
(1)预编译指令 C#中也有#define的编译器指令,但是不能用于替换代码中的常数,只能用于条件编译。被条件编译指令跳过的代码在VS中被灰色表示。 define 、undef 、if、elif、else、endif用于条件编译 warning、error用于手动输出警告和错误信息 region endregion用于组成代码块 line用于修改默认的行号 pragma用于抑制警告报告j原创 2016-06-04 18:47:35 · 623 阅读 · 0 评论 -
JAVA C# C/C++比教学:泛型
所谓泛型,便是指参数化类型 1、JAVA java中允许使用泛型定义接口,类和方法。如 //泛型方法 public <T1, T2> void printPoint(T1 x, T2 y){ T1 m = x; T2 n = y; System.out.println("This point is:" + m + ", " + n);原创 2016-06-06 15:59:35 · 377 阅读 · 0 评论 -
J2EE基础教程(1):简介和windows下环境配置
(1)相关概念我们以前在linux操作系统初级教程中,介绍过LAMP架构服务器技术。现在,我们来介绍J2EE。 通过J2EE开发的应用程序属于分布式多层应用程序,包括 (1)客户层:客户应用,web浏览器的动态网页(含applet) (2)web层: jsp,servlet (3)业务层:EJB (4)企业信息系统层 : 数据库J2EE包含如下构件:运行中,客户端有本地JVM运行,其可以直原创 2016-07-12 20:37:49 · 3119 阅读 · 0 评论 -
OSGi的基本原理(1)_Java Eclipse RCP
1、基本概念 在eclipse项目开始之初,并没有创建RCP的意图。本意是要开发一个集成开发工具的平台。RCP是富客户端平台的缩写。所谓富客户端,就是用来区分终端客户端和简单界面的客户端。当然,我们现在看到的绝大部分消费级商业程序都属于富客户端。一些欣赏eclipse界面的黑客将eclipse改造为了一个可以开发其他他们需要的程序的平台。后来,这被社区所接受。此时,eclipse百年城了一个组件的原创 2016-07-04 16:41:02 · 800 阅读 · 0 评论 -
JAVA EE基础教程(5)hibernate的基本使用(视频笔记)
基本简介ORM的思想是讲对数据库的操作转化为对一个对象的操作。讲一个类对应为一个表,一条记录对应为一个表的行,对象的属性对应一列。这个和JDBC不一样,虽然读出和改变的都是对象,但是还是要调用update语句,但是,在ORM框架中,我们可以实时的改变数据库中的值。一句话,hibernate是对 jdbc的一个更直观的封装。具体的映射被称为存储在对象关系映射文件中。hibernate主要竞争对手是my原创 2016-07-15 22:06:58 · 961 阅读 · 0 评论 -
J2EE基础教程(4):struts框架(视频笔记)
首先,利用myeclipse自带的功能配置好Struts框架 首先我们来看看放在src目录下的struts.xml,里面什么都没有<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http原创 2016-07-14 00:14:56 · 466 阅读 · 0 评论 -
J2EE基础教程(2):JSP初探
实例一 我们先来看一个基本的jsp页面的代码。首先,我们看到jsp是和html混在一起的。 现在浏览器都有浏览元代码的功能,然而,在源代码里,我们是找不到和jsp相关的代码的,而只能找到和html相关的代码。<%@ page language="java" import="java.util.*"%><html> <head> <title>My JSP 'index.js原创 2016-07-13 00:01:28 · 476 阅读 · 0 评论 -
JAVA C# C/C++之比教学:继承
一、C#的继承 (1)C#派生类只能有一个基类,也就是说不支持多重继承。但是可以实现多个接口。 (2)C#只存在public级别的继承。(3)继承中,父类的私有成员也被继承了,但是他们却不可以被访问namespace sandbox{ class B { public B() { System.Console.WriteLi原创 2016-07-18 09:47:15 · 503 阅读 · 0 评论 -
java基础教程9:浏览java api
java se 8的api的网址在 http://docs.oracle.com/javase/8/docs/api/(1)applet applet包中只有一个类,applet 继承树如下: java.lang.Object java.awt.Component java.awt.Container java.awt.Panel java.applet.Applet 实现原创 2016-07-08 15:32:04 · 225 阅读 · 0 评论 -
java基础教程10:事件处理机制
如果让我们自己写一个事件处理机制,我们的写法大概分为如下五部分 (1)自定义一个事件package Pack1;import java.util.EventObject;public class MyEvent extends EventObject{ private String myState; public MyEvent(Object source,String st原创 2016-07-08 20:31:21 · 444 阅读 · 0 评论 -
Java基础教程8:哈希表
哈希表是一种重要的存储方式和快速检索方法。来自于Java.util.Hashtable。对于数组来说,存储的位置和对象本身的内容没有必然联系,所以查找起来只能顺序查找。如果数组中元素太多了,就没办法应付了。 建立一个哈希表需要选取对象的一个关键属性,并依据提前选定的对应关系,是对象和唯一的存储位置向对应。 对于哈希表来说,容量是不固定的,随着数据的加入,其容量也可以自动增长。上述的关键属性被称为原创 2016-07-06 16:20:04 · 361 阅读 · 0 评论 -
J2EE基础教程(3):Spring框架
ssh是目前比较流行的一种web应用程序集成框架。由struts+spring+hibernate组成。 Struts作为系统的整体基础架构,负责MVC的分离。 spring使用基本的javaBean来代替EJB hibernate对JDBC进行了非常轻量级的封装。任何使用JDBC使用的场合都可以采用。 这一讲,我们先来简介一下Spring 控制反转:当我们调用一个方法或者类是,不再由我...原创 2016-07-13 18:21:51 · 460 阅读 · 0 评论 -
C++ JAVA的比较学:布尔量
1、C++ 第一个问题是,bool量的大小。在C++中,布尔量实际上是一个byte,而不是一个int。当然也不可能是一个bit。 第二个问题,bool量的存储值。 原生的C++没有boolean这种数据类型。 如果将bool类型强制转化为int类型。true是1,false是0。事实上,如果直接打印bool量的话(转化为char类型)也是0和1。不过,跟int转化为char一样(如果你不是期原创 2016-08-27 20:19:12 · 1702 阅读 · 0 评论 -
JAVA中的集合框架
java中所有称之为集合的东西,都是保存的对象的引用。也就是说,如果放一个基本数据类型,是通不过编译的。放个基本数据类型的数组是可以的,比如说int[3]等等。1、java数组 也就是我们熟悉的A[20]类似的东西。数组也是一个对象。直接继承object类。不实现任何接口。必须指定长度。数组中提供的方法也不少。我们常见的两种定义方式如下。当然,我们在生命的时候不需要指定大小。 pub原创 2016-08-24 19:05:27 · 229 阅读 · 0 评论 -
JAVA和C++比教学 :算式执行顺序
1、JAVA java中常见的运算符执行顺序如下 在java中,计算的时候都是优先级高的先执行。优先级相同的遵循其关联方向。详细的优先级表格如下优先级 操作符 含义 关联性 用法 ----------------------------------------------------------------1 [ ] 数组下标 左原创 2016-08-29 21:31:37 · 858 阅读 · 0 评论 -
Java/Spring和事务
Spring事务 的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。Spring事务的传播属性PROPAGATION_REQUIRED 支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择,也是 Spring 默认的事务的传播。PROPAGATION_REQUIRES_NEW 新建事务,如果当前存在事务,把当前事务...原创 2016-08-20 16:12:57 · 309 阅读 · 0 评论 -
JMS
有很多种技术可以实现系统之间的传递数据 如RPC(远程过程调用的解决方案):COM/DCOM,COBRA,DCE,EJB等等。 也有使用时间通知,内部交互,消息队列的:如FIFO缓冲,消息队列,管道,信号,socket等等 也可以使用异步可靠消息中间件(MOM)。如IBM WEBsphere,apache activeMQ等。也是我们要讨论的。MOM的设计初衷是为了分布式系统提供异步,解...原创 2016-08-20 20:56:15 · 237 阅读 · 0 评论