Java新手问题 04 虚拟机相关
关于基本类型和引用类型主要是关于:基本类型和引用类型在本质上有什么区别. 基本类型主要包括:boolean、byte、short、char、int、long、float、double。其它所有的类型都属于引用类型。Question:这两种类型在内存存储上有什么区别基础类型在声明的同时系统会给予分配内存空间.引用类型在声明时系统...
2024-01-10java如何快速的调试自己写的方法?
比如我写了如下的代码package com.example.demo;public class Demo { public static void demo01(String a, String b) { System.out.println(a + b); } public static void demo02(Integer x, Integer...
2024-02-15自己动手写SQL执行引擎
整体结构既然造轮子,那当然得从前端的网络协议交互到后端的文件存储全部给撸一遍。下面是Freedom实现的整体结构,里面包含了实现的大致模块:最终存储结构当然是使用经典的B+树结构。当然在B+树和文件系统block块之间的转换则通过Buffer(Page) Manager来进行。当然了,为了完成事务,还必须要用WAL...
2024-01-10如何自己动手写SQL执行引擎
目录前言整体结构MySQL Protocol结构B+Tree的磁盘结构事务支持尾声前言在阅读了大量关于数据库的资料后,笔者情不自禁产生了一个造数据库轮子的想法。来验证一下自己对于数据库底层原理的掌握是否牢靠。在笔者的github中给这个database起名为Freedom。整体结构既然造轮子,那当然得从前端的网络协议...
2024-01-10自己动手编写IOC框架(一)
本文内容纲要:自己动手编写IOC框架(一) 博客创建了2年多了,一直没敢写点东西,怕技术不够误导了别人。2年多后的今天我已经很有信心能够为需要帮助的人做点微薄的贡献了。这是我第一次写博客,先自我介绍一下。本人网名泪滴,一个非常伤心的名字,生活中除了代码一无所有,平时喜欢...
2024-01-10java笔记:自己动手写javaEE框架(五)--Spring事务管理学习
本文内容纲要:java笔记:自己动手写javaEE框架(五)--Spring事务管理学习上篇文章写到了编程式事务的使用TransactionTemplate类的实现,TransactionTemplate类里的execute方法需要TransactionCallback接口实现类做参数,其接口的定义中只包含一个doInTransaction方法用于执行事务操作,上面的代码中使用匿名类的方式定...
2024-01-10java笔记:自己动手写javaEE框架(四)--Spring事务管理学习
本文内容纲要:java笔记:自己动手写javaEE框架(四)--Spring事务管理学习 最近工作里碰到了事务的难题,不过还好,一切问题都已经解决了,但是这个过程让我明白自己对事务的理解还是不够透彻,特别是Spring事务管理。 这个让我惊醒起来,我记得以前找工作经常被人问到事务的相关知识,...
2024-01-10java实现点选汉字验证码(自己修改后的)
参考:http://blog.csdn.net/qq_26680031/article/details/51168527 package com.rd.p2p.web;import java.awt.BasicStroke;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.geom.AffineTransform;import jav...
2024-01-10java笔记:自己动手写javaEE框架(三)--引入SQL监控技术P6spy
最近忙得要死,昨晚写着写着居然睡着了。哎,还是接着写java框架吧。 任何系统里,日志和一定的监控是相当重要的,在一个软件整个生命周期里维护永远是大头同时是痛苦的,而日志和监控就是为后期维护提供了良好的基础和手段,在java工程里面大多使用log4j来记录系统日志,这个技术几...
2024-01-10XenServer6.0中虚拟机设置自动启动的方法
前言众所周知在XenServer的较早前版本(6.0以前)中,启动XenServer时,可以选择自动启动在其中安装的虚拟机。这个功能在XenServer 6.0中被Citrix取消了,原因是会干扰到XenServer的HA(高可用性)和Failover(故障转移)功能的兼容性。但是,如果只运行一个XenServer,这个功能还是非常好的。在XenServer 6.0中,...
2024-01-10Java:那些把自己陷进去的误区(一)
1.1数据类型 1.整型: 1.在Java中,整形的范围为-2147 483 648—2147483647,并且这个范围与运行Java代码的机器无关,此举大大解决了移植问题。 2.Java没有任何无符合的数据类型的(unsigned),整型允许是负数。 2.浮点类型: 1.float类型的数值后面一定有一个后缀F,没有...
2024-01-10自己写了个Java RMI(远程方法调用)的实现案例
自己简单写了个Java RMI(远程方法调用)的实现案例。为了更好理解RMI(远程方法调用)、序列化的意义等等,花费三天多的时间肝了一个Java RMI的实现案例。!!!高能预警!!!代码量有点大,先附上了简图用于理解整个过程分为两大步第一步--注册过程:客户端通过指定路由获取注册中心指定...
2024-01-10Java - 命令行中的jar与自己的参数和自己的参数
我无法找到简单的解决方案来解决我在Java中的问题。我必须使用带参数的命令行来运行JAR文件。Java - 命令行中的jar与自己的参数和自己的参数我知道如何做到这一点像的下方,它的正常工作:Java的罐子filename.jar参数1参数2等 例如:Java的罐子file.jar 50 10但是,我应该怎么做,我希望使用一些参数? ...
2024-01-10Java中,尽量相信自己,使用自己写的方法,不要使用底层提供的方法。都是坑。
https://www.jianshu.com/p/11d8ed48f7a9MediaType.TEXT_PLAIN 使用的不是 utf-8Charset.defaultCharset()你相信系统,想利用系统字符集, 但系统字符集并不统一。我们在给自己找事。 我们花精力理解去理解它更没有意义。无用的学习成本。比如 logback-spring.xml 里可以使用的变量,学习这些变量, 对编程本身没有意义。...
2024-01-10什么是JVM,Java虚拟机?
Java使用javac(编译器)将Java代码转换为字节代码(.class文件)。当我们使用JVM运行此代码时,它会在内部使用解释器将字节代码转换为系统可理解的代码。JVM不会一次又一次地执行代码,而是将它们标识为“热点”,并使用即时编译器进行编译,然后在需要时重用它们。编译器将给定程序编译(翻译...
2024-01-10开机启动java
Linux 开机启动某个服务cd cd /usr/javaproject/修改启动脚本1、添加在中 /etc/rc.d/rc.localhttps://blog.csdn.net/qq_42006894/article/details/85985698nohup java -jar /root/javaproject/blog.jar &不生效问题https://www.cnblogs.com/centos2017/p/11270703.html要写绝对路径https://blog.csdn.net/wei...
2024-01-10Java虚拟机(JVM)内存区域
Java虚拟机内存区域分为五部分:程序计数器、Java虚拟机栈、本地方法栈、堆、方法区。其中程序计数器、Java虚拟机栈、本地方法栈属于线程私有内存区,其生命周期与线程相同,随线程的产生而产生,随线程的消亡而消亡。这几个区域的内存在方法或线程结束时,自然就跟着回收了。因此这...
2024-01-10老生常谈Java虚拟机垃圾回收机制(必看篇)
在Java虚拟机中,对象和数组的内存都是在堆中分配的,垃圾收集器主要回收的内存就是再堆内存中。如果在Java程序运行过程中,动态创建的对象或者数组没有及时得到回收,持续积累,最终堆内存就会被占满,导致OOM。JVM提供了一种垃圾回收机制,简称GC机制。通过GC机制,能够在运行过程中将堆中...
2024-01-10【Java】Java虚拟机-垃圾回收
原文链接回收的是什么?答:运行程序中没有任何指针引用的对象,这个对象就是需要被回收的垃圾垃圾回收算法标记阶段在GC执行垃圾回收之前,首先需要区分出内存中那些是存活的对象,那些是已经死亡的对象。只有被标记为已死亡的对象,GC才会在执行垃圾回收时,释放掉其存活所占用的内存...
2024-01-10java命令调用虚拟机方法总结
java命令调用虚拟机java的虚拟机调用,按住Win+r命名,如图所示:继续点击确定按钮,如图所示:可以看到后台命令,如图所示:调用虚拟机编译Test.java代码;如图所示:Test.java可以看到在E盘JavaTest文件夹下,,如图所示:回到命令后台,输入:E: 按回车键,然后在输入:cd JavaTest,按回车键,...
2024-01-10Java虚拟机中Java内存区域
Java虚拟机所管理的内存将会包括以下几个运行时数据区域。程序计数器可以看作是当前线程所执行的字节码的行号指示器。每一个线程都需要有一个独立的程序计数器。如果线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是Native方法...
2024-01-103台虚拟机搭建kafka集群
1.下载wget http://mirror.bit.edu.cn/apache/kafka/2.5.0/kafka_2.13-2.5.0.tgz 2.解压tar -zxvf kafka_2.13-2.5.0.tgz -C /usr/local 3.改名mv kafka_2.13-2.5.0 kafka 4.修改server.propertiesvim /usr/local/kafka/config/server.properties 5.发送到ht-2和ht-3节点scp -r kafka ht-2:/u...
2024-01-10Java虚拟机—栈帧、操作数栈和局部变量表
前言:在之前的文章:Java虚拟机—堆、栈、运行时数据区 中,我们整体介绍了JVM在运行时的一些数据区域如堆、方法区、程序计数器、虚拟机栈、本地方法栈。本篇文章,我们围绕其中的一个区域展开——虚拟机栈中的栈元素栈帧所以,本文的主要分为两部分:1.Java虚拟机运行时栈帧介绍 2.一个...
2024-01-10Java虚拟机工作原理
首先我想从宏观上介绍一下Java虚拟机的工作原理。从最初的我们编写的Java源文件(.java文件)是如何一步步执行的,如下图所示,首先Java源文件经过前端编译器(javac或ECJ)将.java文件编译为Java字节码文件,然后JRE加载Java字节码文件,载入系统分配给JVM的内存区,然后执行引擎解释或编译类文件,再...
2024-01-10【转载】Java基础总结(二)----集合、多线程、io、虚拟机等
Java集合java集合框架的结构List接口List接口通常表示一个列表(数组、队列、链表、栈等),其中的元素可以重复,常用实现类为ArrayList和LinkedList,另外还有不常用的Vector。另外,LinkedList还是实现了Queue接口,因此也可以作为队列使用。Set接口Set接口通常表示一个集合,其中的元素不允许重复(通...
2024-01-10Java虚拟机是如何加载Java类的?
一般来说,我们把类加载过程分为三个主要步骤:加载、链接、初始化。 加载:是指查找字节流,并且据此创建类的过程。 Java 虚拟机借助类加载器来完成查找字节流的过程。 启动类加载器(Bootstrap Class-Loader),加载jre/lib下面的jar文件,如rt.jar。 扩展类加载器(Extention or ...
2024-01-10【Java】Java虚拟机-类的加载过程及双亲委派机制
原文链接类的加载过程加载通过全类名获取类的二进制字节流将字节流所代表的静态存储结构转化为方法区的运行时数据结构在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的方法入口从何处获取字节流:从本地磁盘获取从网络获取运行时计算生成(动态代理)...
2024-01-10java强软弱虚引用详解(转载)
转载自:http://zhangjunhd.blog.51cto.com/113473/53092/ava:对象的强、软、弱和虚引用2007-12-01 17:20:20标签:Java 软引用 弱引用 休闲 虚引用原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://zhangjunhd.blog.51cto.com/113473/53092本文介绍对象...
2024-01-10解析Java虚拟机中类的初始化及加载器的父委托机制
类的初始化 在初始化阶段,Java虚拟机执行类的初始化语句,为类的静态变量赋予初始值。 在程序中,静态变量的初始化有两种途径: 1.在静态变量的声明处进行初始化; 2.在静态代码块中进行初始化。 没有经过显式初始化的静态变量将原有的值。 一个比较奇怪的例子:...
2024-01-10Java虚拟机学习(3): 类加载机制
类加载机制JVM把class文件加载的内存,并对数据进行校验、转换解析和初始化,最终形成JVM可以直接使用的Java类型的过程就是加载机制。类从被加载到虚拟机内存中开始,到卸载出内存为止,它的生命周期包括了:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使...
2024-01-10浅谈Java虚拟机对内部锁的四种优化方式
自Java 6/Java 7开始,Java虚拟机对内部锁的实现进行了一些优化。这些优化主要包括锁消除(Lock Elision)、锁粗化(Lock Coarsening)、偏向锁(Biased Locking)以及适应性锁(Adaptive Locking)。这些优化仅在Java虚拟机server模式下起作用(即运行Java程序时我们可能需要在命令行中指定Java虚拟机参数“-server”以开...
2024-01-10java类加载过程以及双亲委派机制
前言:最近两个月公司实行了996上班制,加上了熬了两个通宵上线,状态很不好,头疼、牙疼,一直没有时间和精力写博客,也害怕在这样的状态下写出来的东西出错。为了不让自己荒废学习的劲头和习惯,今天周日,也打算写一篇博客,就算是为了给自己以前立的flag(每个月必须写几篇博客)的实现。...
2024-01-10浅谈Java的虚拟机结构以及虚拟机内存的优化
工作以来,代码越写越多,程序也越来越臃肿,效率越来越低,对于我这样一个追求完美的程序员来说,这是绝对不被允许的,于是除了不断优化程序结构外,内存优化和性能调优就成了我惯用的“伎俩”。要对Java程序进行内存优化和性能调优,不了解虚拟机的内部原理(或者叫规范更严谨一点)是肯...
2024-01-10