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事务管理学习 最近工作里碰到了事务的难题,不过还好,一切问题都已经解决了,但是这个过程让我明白自己对事务的理解还是不够透彻,特别是Spring事务管理。 这个让我惊醒起来,我记得以前找工作经常被人问到事务的相关知识,...
2024-01-10java笔记:自己动手写javaEE框架(五)--Spring事务管理学习
本文内容纲要:java笔记:自己动手写javaEE框架(五)--Spring事务管理学习上篇文章写到了编程式事务的使用TransactionTemplate类的实现,TransactionTemplate类里的execute方法需要TransactionCallback接口实现类做参数,其接口的定义中只包含一个doInTransaction方法用于执行事务操作,上面的代码中使用匿名类的方式定...
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浅谈Java虚拟机对内部锁的四种优化方式
自Java 6/Java 7开始,Java虚拟机对内部锁的实现进行了一些优化。这些优化主要包括锁消除(Lock Elision)、锁粗化(Lock Coarsening)、偏向锁(Biased Locking)以及适应性锁(Adaptive Locking)。这些优化仅在Java虚拟机server模式下起作用(即运行Java程序时我们可能需要在命令行中指定Java虚拟机参数“-server”以开...
2024-01-10Java虚拟机笔记(五):JVM中对象的分代
为什么要分代为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。因为每次回收都需要遍历所有存活对象,但实...
2024-01-10详解Java 虚拟机垃圾收集机制
1 垃圾收集发生的区域之前我们介绍过 Java 内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈三个区域随线程共存亡。栈中的每一个栈帧分配多少内存基本上在类结构确定下来时就已知,因此这几个区域的内存分配和回收都具有确定性,不需要考虑如何回收的问题,当方法结束或线...
2024-01-10java的四种引用,强弱软虚,用到的场景
1、强引用(StrongReference)强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下: Object o=new Object(); // 强引用1当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。如果不使用...
2024-01-10Java虚拟机学习 - 对象访问
分类: JVM2012-09-26 19:36 9280人阅读 评论(17) 收藏 举报对象访问会涉及到Java栈、Java堆、方法区这三个内存区域。如下面这句代码:[java] view plaincopyprint?Object objectRef = new Object(); ...
2024-01-10Java虚拟机JVM堆栈区
以下是了解JVM堆栈区域的一些关键点-在创建线程期间,Java虚拟机将创建一个单独的堆栈。JVM在此堆栈上仅执行两个操作。操作是推入(即插入)和弹出(即删除)。当前正在执行线程时,与其关联的堆栈称为运行时堆栈。线程完成的每个方法调用,中间计算,局部变量的分配,调用参数等都作为操作...
2024-01-10Java虚拟机
此博客内容均取自网上热度比较高的三位作者的笔记:CyC2018、JavaGuide、一份名为《java核心知识整理》的笔记(作者的笔记中没有留个人信息)1.Java内存区域1.1 概述 对于 Java 程序员来说,在虚拟机自动内存管理机制下,不再需要像 C/C++程序开发程序员这样为每一个 new 操作去写对应的 delete/fr...
2024-01-10Java虚拟机-----------Java内存区域与内存溢出异常
Java内存区域划分 Java虚拟机运行时的数据区大致可划分为五部分:方法区,堆(两部分组成Java堆内存),虚拟机栈,本地方法栈(Java栈内存),程序计数器。 1.程序计数器 程序计数器占较小的内存空间,可看作当...
2024-01-10java 虚拟机中对象访问详解
java 虚拟机中对象访问详解对象访问会涉及到Java栈、Java堆、方法区这三个内存区域。如下面这句代码:Object objectRef = new Object(); 假设这句代码出现在方法体中,"Object objectRef” 这部分将会反映到Java栈的本地变量中,作为一个reference类型数据出现。而“new Object()”这部分将会反映到Jav...
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虚拟机】二 类加载与双亲委派
https://blog.csdn.net/zhangliangzi/article/details/51338291 -参考双亲委派过程:当一个类加载器收到类加载任务时,立即将任务委派给它的父类加载器去执行,直至委派给最顶层的启动类加载器为止。如果父类加载器无法加载委派给它的类时,将类加载任务退回给它的下一级加载器去执行;除了启动类加载器以外...
2024-01-10Java类的加载时机与过程
目录1 开门见山2 类的加载时机3 何时开始类的初始化4 被动引用例子5 类的加载过程5.1 加载5.2验证5.3准备5.4 解析5.5 初始化6 题目分析1 开门见山以前曾经看到过一个java的面试题,当时觉得此题很简单,可是自己把代码运行起来,可是结果并不是自己想象的那样。题目如下:class SingleTon { private static Sing...
2024-01-10华为上机题汇总----java
以下华为上机题目都是网上整理得到的,代码都是自己调试过的,由于网上java答案较少,欢迎大家批评指正,也希望对准备华为上机的童鞋们有一点点帮助。在练习的过程中成长,加油!~~ 第1题:输入字符串长度len1,字符串s1,字符串长度len2,字符串s2。从后向前比较,以最短字符串为标准...
2024-01-10java虚拟机原理:类加载过程详解
目录一、Java 类加载过程1、字节码编译2、加载3、连接4、初始化总结一、Java 类加载过程1、字节码编译编写好 Java 源码 Student.java ,使用 javac 将上述 Java 源码编译成 Class 字节码文件 Student.class ,2、加载加载 : 通过 " 类加载子系统 " 将该字节码文件 , 加载到 Java 虚拟机内存中 的 方法区 , 然后开始执...
2024-01-10