自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

鹜骜的博客

22岁30年开发经验

  • 博客(19)
  • 收藏
  • 关注

原创 [JVM]四 执行引擎

文章目录执行引擎编译 & 执行为什么说java是半编译半解释:什么时候选择JIT热点探测回边计数执行方式JIT分类执行引擎虚拟机的执行引擎是由软件实现,因此可以不受物理条件制约的定制指令与执行引擎的体系结构,能够执行那些不被硬件支持的指令集格式jvm主要任务是负责装载字节码到内部,但字节码并不能直接运行在操作系统之上,因为字节码指令并非等价于本地机器指令,他内部包含的仅仅只是一些能够被JVM所识别的字节码指令,符号等,如果要想让一个java程序运行起来。执行引擎的任务就是将字节码指令解释编译为

2020-05-30 16:46:15 250

原创 [Shell] 定时任务脚本--反刷日任务/小时任务脚本模板--贴过去跑不起来你来打我--亲测完美建议收藏!~

很多时候任务要在调度平台上定时执行而你的任务很多是要靠shell脚本来实现启动在此整理了一下日任务和小时任务的shell脚本带反刷数据功能的 模板希望能帮到大家日任务+反刷日任务# !/bin/bash# XX数据XXXX每日任务脚本# 创建时间:2020年5月29日15:05:44# 创建人:鹜 骜 # shell脚本输入参数:# $1 开始时间 格式 yyyyMMdd# $2 结束时间 格式 yyyyMMdd# 这里解释一下$3 调度平台有的执行任务会加日志级别等别的参数在后

2020-05-29 15:41:34 1064 2

原创 [JVM]五 对象在内存中的结构

对象实例化创建对象的方式:1)new ,静态方法创建 , 工厂模式的静态方法创建2)class的newInstance() 反射,只能调用空参的构造器,权限必须是public (过时)3)Constructor的newInstance() 反射,可带参,无权限要求4)使用clone() 实现Cloneable接口 浅复制5)反序列化,从文件或网络中创建对象6)第三方库Objenesis对象创建的步骤1)判断对象对那个的类是否加载,链接,初始化虚拟机首先检查这个指令的参数能否在Metas

2020-05-28 23:55:05 212

原创 [JVM]二 运行时数据区 (5) 方法区 + 直接内存

方法区栈,堆,方法区的交互关系方法区的理解方法区大小与OOM方法区内部结构方法区的垃圾回收

2020-05-27 23:18:44 349

原创 [Kettle] 公式 使用方法

今天要将流中数据接收到 之后存储在mysql数据库中接受过来的字段是这样:这个 100% 是个String类型可是要 更新/插入 的表中对应的字段却是 int 类型 这个"%"就存不进去目前任务 就是要把%去掉kettle中转换工具眼花缭乱,网上讲用 字符串替换 执行sql脚本之类 但是一直也没找到个demo让人能够茅厕(ce)顿开最后用了函数解决 并且学习了一写关于函数的使用方法请看下面demo1)我在生成记录中自定义一个ratio字段String类型,并且规定了值为100%2.

2020-05-27 15:35:39 3994 5

原创 [JVM]二 运行时数据区 (4) 堆

文章目录堆1 堆结构2.对象分配过程3.GC最后$.1 设置堆内存大小 & 查看堆内存$.2 显示GC信息$.3 参数调优堆概述一个JVM实例只存在一个堆内存,堆也是java内存管理的核心区域Java堆在启动时空间大小也就确定了。是JVM管理的最大一块内存空间。堆内存大小可以调节。堆在物理上的内存中不连续,但在逻辑上应该被视为是连续的。所有的线程共享java堆,但堆里还可以划分线程私有的缓冲区几乎(【逃逸分析】,如果没有逃逸会由栈上分配)所有对象实例和数组都应该在运行时分分配在堆上栈

2020-05-25 00:35:50 247

原创 [JVM]二 运行时数据区 (3) 本地方法栈

jvm本地方法栈用于管理本地方法的调用本地方法栈也是线程私有的允许线程固定或者可动态扩展的内存大小某个线程调用一个本地方法时,他就进入了一个不受虚拟机限制的世界,他和虚拟机拥有同样的权限。具体实现:本地方法本质上是依赖于实现的,任何本地方法接口都会使用某种本地方法栈,当线程调用java方法时,虚拟机会创建一个新的栈帧并压入java栈。然而当他调用的是本地方法时,虚拟机会保持java栈不变,不再在线程的java栈中压入新的帧,虚拟机只是简单的动态链接并直接调用指定的本地方法,可以把这块安佐世虚拟机利用

2020-05-23 16:23:51 204

原创 [JVM]三 本地方法库 & 本地方法接口

文章目录本地方法为什么使用本地方法本地方法native(本地的)比如 Object中的 getClass()Thread类中 currentThread()一个Native Method 就是一个java调用非java代码的接口。该方法的实现由非java语言实现,比如C 。定义一个native method时,并不提供实现体,因为由非java实现。本地接口的作用是融合不同的编程语言为java所用。为什么使用本地方法与java环境外交互有时java应用需要与java外面的环境交互,这是本

2020-05-23 15:24:23 961

原创 [JVM]二 运行时数据区 (2) 虚拟机栈

虚拟机栈虚拟机栈栈是运行时的单位。解决程序的运行问题,即程序如何执行。主管java程序的运行,它保存方法的局部变量,部分结果,并参与方法的调用和返回每个线程在创建时都会创建一个虚拟机栈,其内部保存一个个的栈帧,对应着一次次的java方法调用,生命周期和线程一致;栈运行原理栈中的数据以栈帧的格式存在,线程上执行的每一个方法都对应一个栈帧,栈帧是一个内存区块,维系着方法执行过程中的各种数据信息。栈顶栈帧是当前正在执行的方法,也被称作栈顶栈帧,对应当前栈帧的方法就是当前方法,定义这个方法的类就是当前类

2020-05-23 13:21:18 232

原创 [JVM]二 运行时数据区 (1) 程序计数器

运行时数据区概述方法区(JKD8后元数据区)和堆是一个进程共享一份而每个线程对应一个程序计数器,虚拟机栈,本地方法栈程序计数器(PC寄存器)寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行JVM中的pc寄存器是堆物理pc寄存器的一种抽象模拟**作用:**存储指向下一条指令的地址,即将要执行的指令代码,由执行引擎读取吓一条指令。1)他的内存空间很小,但运行速度很快;2)在JVM规范中,每个线程都有自己的程序计数器,生命周期与线程的生命周期一致;3)任何时间一个线程都有

2020-05-21 23:49:03 189 1

原创 [Kettle] Could not read from ..... because it is a not a file.

前言:在win环境下tran和job都可以运行。但是在linux上tran可以执行,job出现报错[root@mysql pdi-ce-5.4.0.1-130]# ./kitchen.sh -file /data/zjhcsoft/etl/cs/cs_integration//dy/job/tran_z_tickte_dy_sell_d.kjb Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; sup

2020-05-20 14:27:48 3992 1

原创 [JVM]一 类加载器子系统

类加载器子系统的作用:类加载器子系统负责从文件或网络中加载Class文件,class文件在文件开头由特定的文件标示ClassLoader负责class文件的加载,至于是否可以运行,则由ExecutionEngine决定加载的类信息存防御方法去的内存空间,处理类的信息外,方法去中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是class文件中常量池部分的内存映射)具体步骤:加载:通过一个类的全限定名获取定义此类的二进制字节流,将这个字节流所代表的静态存储就够转化为方法区

2020-05-19 21:40:32 152

原创 [ETL] 初识kettle

前言:编写kettle的应该是一位爱做饭的程序员kettle 是 java编写 需要jdk环境kettle 组成1.勺子(Spoon.bat/spoon.sh)图形化界面 win选择bat linux选择sh2.锅(Pan.bat/pan.sh)调用Trans3.厨房(Kitchen.bat/.sh)调用job4.菜单(Carte.bat/.sh) 轻量级的web容器 用于建立专用远程的ETL Server 可分布式存储机制以xml形式存储以资源库方式存储(数据资源库.

2020-05-12 23:02:16 175

原创 [Java]synchronized的实现方式 & synchronized与lock的区别

synchronized的实现方式在java语言中存在两种内建的synchronized语法:1、synchronized语句;2、synchronized方法。对于synchronized语句当Java源代码被javac编译成bytecode的时候,会在同步块的入口位置和退出位置分别插入monitorenter和monitorexit字节码指令。synchronized方法则会被翻译成普通的方法调用和返回指令如:invokevirtual、areturn指令,在VM字节码层面并没有任何特别的指令来实

2020-05-12 00:01:48 279

原创 [Java] Semaphore

Semaphore两个作用:1多个共享资源的互斥使用2并发线程数量的控制常用于限制可以访问某些资源的线程数量,例如通过 Semaphore 限流。方法:acquire()release()Semaphore中包含初始化时固定个数的许可,在进行操作的时候,需要先acquire获取到许可,才可以继续执行任务处理完成之后需要release释放。案例:public class Sem...

2020-05-05 16:43:11 144

原创 [Java]countDownLatch & CyclicBarrier

countDownLatch使一个线程等待其他线程各自执行完毕后再执行。concurrent包里面的CountDownLatch其实可以把它看作一个计数器计数器的初始值是线程的数量。每当一个线程执行完毕后,计数器的值就-1,当计数器的值为0时,表示所有线程都执行完毕用途:public class CDText { public static void main(String[] ...

2020-05-05 15:19:04 145

原创 [Java] 关于集合类的线程安全问题

前言:集合类学过也用过,知道ArrayList,HashSet,HashMap线程是不安全的,但是我们在平常使用过程中,并没有发现哪里有问题。下面就说说为什么这些常用集合类是线程不安全的。在前面java学习中,很多情况下只是用到了main线程,没用加入并发,而在并发环境下ListList<String> list = new ArrayList<>(); ...

2020-05-04 16:30:50 362

原创 [Java] volatile 详详解!

前言:要真正搞懂volatile的特性需要与JMM对比来看JMM(线程安全的保证)JMM:JAVA内存模型(java memory model) 是一种抽象概念,并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(实例字段,静态字段和构成数组对象的元素)的访问方式。JMM关于同步的规定线程解锁前,必须把共享变量的值刷新回主内存;线程加锁前,必须读取主内存的最...

2020-05-03 17:20:47 4895 1

原创 [hive] 窗口函数详解

前言:面试官:窗口函数使用过吗?:了解过啊。窗口函数应用场景:(1)用于分区排序(2)动态Group By(3)Top N(4)累计计算(5)层次查询比如RANK() 排序相同时会重复,总数不会变DENSE_RANK() 排序相同时会重复,总数会减少ROW_NUMBER() 会根据顺序计算OVER():指定分析函数工作的数据窗口大小面试官:小伙子理论还行啊,来用我这电脑建张表实际操作...

2020-05-01 13:19:43 438

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除