一、简介final在Java中是一个保留关键字,可以声明成员变量、方法、类以及本地变量。一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如果你试图将变量再次初始化的话,编译器会报编译错误。二、使用场景在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。1. 修饰类当用final修饰一个类时,表明这个类不能被继承。最常见是就是String类,
前言我们都知道,Java是一种面对对象语言,这样就避开了繁琐过程使编码变得简单。同时Java是在JVM虚拟机上运行,故具有良好可移植性。 现在,让我们来一起探索Java程序运行原理基本原理 Java语言是一种先编译后解释语言,一般我们在编写一个Java程序时需要在记事本(或编辑器)上先编辑好源代码 这些源代码经过编译器编译后,就会生成一个.class文件,这个文件就是编译好Java程序
转载 2023-06-25 20:09:06
114阅读
前言本篇文章主要从几个方面来阐述下java jni原理机制。1. 什么是java jni? 2. java jni有什么作用? 3. java jni应用场景有哪些?4. java jni实现原理5. java jni如何使用;6. 使用实例;下面我们逐一进行解析。 
转载 2023-08-09 14:02:14
156阅读
Java注解实际上只是对包、类、方法、成员变量等java程序进行标注。其本身没有业务逻辑、要实现注解相应业务逻辑功能必须由另外处理类来实现。其基本原理就是通过java反射机制,获取这些java程序包、类、方法、成员变量注解、然后加以判断并实现相应业务功能逻辑。 java内置注解包括@Override、@Deprecated、@SuppressWarnings("uncheck
1、事务特征(ACID)(1)原子性:不可分割性,操作要么全部执行,要么全部不执行。(2)一致性:事务执行使得数据库从一种正确状态转换为另一种正确状态。(3)隔离性:一个事务执行不能干扰其他事务。(4)持久性:事务完成后,对数据改变是永久性,结果会永久保存在数据库中。Java事务产生原因:程序操作sh数据可需要,编程中,实现ACID操作。Java事务实现范围:通过JDBC间接
  Synchronized是Java中解决并发问题一种最常用方法,也是最简单一种方法。Synchronized作用主要有三个:(1)确保线程互斥访问同步代码(2)保证共享变量修改能够及时可见(3)有效解决重排序问题。从语法上讲,Synchronized总共有三种用法:同步普通方法,锁是当前对象。同步静态方法,锁是当前 Class 对象。同步块,锁是&nbsp
转载 2023-09-01 09:14:56
88阅读
场景:    在多线程并发编程中synchronized一直是元老级角色,作为最基本互斥手段,很多人都会称呼它为重量级锁。但是,随着Java SE 1.6对synchronized进行了各种优化之后,有些情况下它就并不那么重了。Java SE 1.6中为了减少获得锁和释放锁带来性能消耗而引入偏向锁和轻量级锁,以及锁存储结构和升级过程。3种形式:先来看下利用sy
转载 2023-07-15 13:08:43
119阅读
一、什么是JVM    JVM是Java Virtual Machine(Java虚拟机)缩写,JVM是一种用于计算设备规范,它是一个虚构出来计算机,是通过在实际计算机上仿真模拟各种计算机功能来实现。    Java语言一个非常重要特点就是与平台无关性。而使用Java虚拟机是实现这一特点关键。一般高级语言如果要在不同平台上运行,至少需要
转载 2023-08-21 19:44:23
27阅读
Spring AOP实现原理:63.什么是AOPAOP概念:AOP是spring提供关键特性之一。AOP即面向切面编程,是OOP变成有效补充。使用AOP,可以将一些系统性编程工作独立出来,然后通过切面切入系统,从而避免在业务逻辑代码中混入很多系统相关逻辑:比如权限管理,事务管理,日志记录等等。AOP实现原理:AOP分为静态AOP和动态AOP。静态AOP是指AspectJ实现AOP,她是
转载 2023-08-12 09:55:31
85阅读
JVM是Java Virtual Machine(Java虚拟机)缩写,JVM是一种用于计算设备规范,它是一个虚构出来计算机,是通过在实际计算机上仿真模拟各种计算机功能来实现Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关信息,使Java程序只需生成在Java虚拟机上运行目标代码(字节码),就可以在多种平台
转载 2023-08-28 15:26:14
111阅读
原标题:JVM工作原理作为一名Java开发者,掌握JVM体系结构也是很有必要,了解底层东西,有助于更好理解和掌握程序运行中原理。一、Java运行原理说起Java,我们首先想到Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。它们关系如下图所示:二、JVM运行原理基本概念
Java虚拟机(Java Virtual Machine,JVM)是运行Java程序必不可少机制。JVM实现了Java语言最重要特征:即平台无关性。原理:编译后Java程序指令并不直接在硬件系统CPU上执行,而是由JuVM执行。JVM屏蔽了于具体平台相关信息,Java语言编译程序只需要生成在JVM上运行目标字节码(.class),就可以在多种平台上不加修改地运行。
转载 2023-07-21 09:16:25
41阅读
前言我们在前一章了解到了volatile可以保证并发时可见性和有序性,但对其原理未曾详述,本章就来谈谈volatile具体实现原理。 一、volatile如何保证变量可见性 volatile变量在被修改后对其他线程是立即可以得知。这是由这条规则决定:当它被一个线程修改后会立即将新值写入主内存变量里,如果此时有其他线程要使用这个变量,那么就会从主内存中重新读取volat
Future模式类似于js中ajax等,是一个异步获取数据机制,这里我把自己一些形象理解通过代码实现了一下。该机制可以形象理解为:调用获取数据方法,首先获得一个没有装数据空箱子(这个箱子有获取数据和装载数据机制),至于箱子中数据是通过另开一个线程去获取,隔一段时间之后,当我们想要获取箱子中数据时候,就直接从箱子中拿就行了,一般情况下,由于获取到箱子之后到我需要从箱子中拿取数据
转载 2023-07-17 22:27:06
57阅读
ArrayList实现原理要点概况底层是数组实现,线程不安全,允许包含null在内所有元素,允许存放相同元素数组扩容 默认长度是10,每次数组容量增长大约是其容量1.5倍,会将老数组中元素重新拷贝到新数组中。查询快,增删慢 add、remove操作对于ArrayList其运行时间是O(N),因为在它当中在前端进行添加或移除构造新数组是O(N)操作;get方法调用为O(1)操作。要是使用一个
转载 2023-08-09 11:12:21
64阅读
synchronized 原理  数据同步需要依赖锁,那锁同步又依赖谁?synchronized给出答案是在软件层面依赖JVM,而Lock给出方案是在硬件层面依赖特殊CPU指令,大家可能会进一步追问:JVM底层又是如何实现synchronized?  本文所指说JVM是指Hotspot6u23版本,下面首先介绍synchronized实现:  synrhronized关键字简洁、清
转载 2023-07-20 15:32:52
49阅读
前言Java代码在编译后变成Java字节码,字节码被类加载器加载到JVM中执行,最终转换为汇编指令在CPU上执行,所以Java所有机制都依赖于JVM虚拟机实现与CPU指令。monitor监视锁,每个对象都有一个唯一monitor,它被内置到Java对象头中,所以也称为内置锁,满足以下约束:同时只能一个线程获得锁线程通过竞争获取该锁当线程调用某对象wait方法时,此线程会释放该对象锁,并
转载 2023-09-04 17:42:40
7阅读
深入JVM工作原理(一)一、JVM基础知识(一)java跨平台解释(二)JVM介绍(三)JDK、JRE、JVM三者关系(四)JVM生命周期启动和消亡:JVM运行起点:JVM两种线程:二、JVM工作机制(类加载机制)(一)类加载时机(二)类加载器(三)双亲委派模型(四)类加载详细过程三、JVM工作过程(内存模型)(一)程序计数器(二)虚拟机栈(三)本地方法栈(四)堆(五)方法区四、java
转载 2023-09-18 15:02:22
20阅读
面试发现经常有些重复面试问题,自己也应该学会记录下来,最好自己能做成笔记,在下一次面的时候说得有条不紊,深入具体,面试官想必也很开心。以下是我个人总结,请参考: HashSet底层原理:(问了大几率跟HashMap一起面)HashMap底层原理:(非常大几率问到)Hashtable底层原理:(问少,问了大几率问你跟HashMap区别)synchronized底层如何实现?锁优化,怎么优化?R
Java Native Interface Java本地调用,Java程序中函数和native语言写函数(C或C++)可以实现相互调用。使用JNI技术原因1 Java诞生之前,很多软件都是用native语言写,在Java中只要使用JNI技术调用他们就可以。2 Java是一次编译,到处运行,原因是Java虚拟机在不同平台有不同虚拟机,虚拟机屏蔽了底层硬件差异,Java虚拟机是使用nati
转载 2023-09-27 18:53:53
63阅读
  • 1
  • 2
  • 3
  • 4
  • 5