title: java类加载系列之---类编译揭秘
date: 2018-07-17 11:48:02
category: 原创
tags: [Java,Java类编译加载执行专题]本文为java类编译加载执行系列文章第一篇:类编译揭秘第一步:我们写一个java源文件,如下:public class CompileTest {
	public static void main(String[] a            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-19 07:33:59
                            
                                79阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Java项目命名Java项目命名所有单词应当全部为小写,多个单词使用短横线‘-’分隔。spring-cloudJava文件命名1.源代码文件名必须与公共类的名字相同。 2.一个Java文件中只能有一个public类; 3.如果文件中只有一个类,文件名必须与类名一致; 4.如果文件中不止一个类,文件名必须与public类名一致; 5.如果文件中不止一个类,而且没有public类,文件名可与任一类名一            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-07 16:10:17
                            
                                489阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            搞了java两年多了,无意中看到淘宝架构师林昊写的一本java分布式应用上讲解的jvm。感觉写的挺好。特作此笔记、以备以后复习用。 jvm主要做了哪些呢?1 java代码的执行  1.1 代码编译为class类  1.2 装载class ClassLoader  1.3执行class 2 内存的管理 2.1 内存空间 2.2 内存分配2.            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-12 20:05:21
                            
                                18阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            本文的目的,是通过解剖和修改JVM的类加载器,来详细分析JVM的类加载机制。其实任何一个JVM的类加载器不过是做了如下的工作:1. 确定JAVA类文件的位置。2. 读取类文件内容,将类文件内容读取成二进制字节流。3. 解析并加载类内容。4. 最后,将类的“标识”返回给要使用这个类的代码中。那下面我们就来做一个比较“另类”的试验:在JAVA规范中,public类名必须与类所在的文件名相同。但本文将尝            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-03 15:53:01
                            
                                23阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # Java中如何处理包名和类名相同的问题
在Java编程中,包名和类名相同的情况可能会带来一些困扰。尤其是在使用`import`语句时,这种情况可能导致命名冲突,从而影响代码的可读性和维护性。本文将通过一个具体的示例来探讨如何有效解决这个问题,并提供一些最佳实践。
## 问题背景
假设我们有一个包`com.example`,其中定义了一个类`User`,并且在另一个包中也有一个同名的类`U            
                
         
            
            
            
            必须用英文,不要用汉语拼音  1:包(package):用于将完成不同功能的类分门别类,放在不同的目录(包)下,包的命名规则:将公司域名反转作为包名。比如www.sohu.com 对于包名:每个字母都需要小写。比如:com.sohu.test;该包下的Test类的全名是:com.sohu.Test.java 。  如果定义类的时候没有使用package,那么java就认为我们所定义的类位于默认包里            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-19 21:01:15
                            
                                116阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # Java类名和文件名必须一样
在Java编程中,类名和文件名必须保持一致。这是Java语言的一个常规要求,它有助于编译器和开发者更好地管理和组织代码。本文将解释为什么Java要求类名和文件名一致,并提供相应的代码示例来说明这一规则的实际应用。
## 为什么要求类名和文件名一致?
Java是一种面向对象的编程语言,它的核心概念是类。在Java中,每个类都需要定义在一个单独的文件中,这个文件            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-10-08 03:08:33
                            
                                693阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # Java包名和类名可以一样吗?
在Java开发中,包名和类名是两个不同的概念。包名用于组织和管理类文件的层次结构,而类名则用于标识一个具体的类。在Java中,包名和类名可以是相同的,但这并不是一个好的实践,因为它会导致代码的可读性和可维护性降低。
下面是实现"java包名和类名可以一样吗"的步骤:
| 步骤 | 描述 |
| ---- | ---- |
| 1 | 创建Java源文件 |            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-07-22 09:54:56
                            
                                266阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Java 中类和方法修饰符类的修饰访问修饰符 修饰符 class 类名 extends 父类名称 implements 接口名称(notes: 访问修饰符符与修饰符的位置可以互换)访问修饰符名称说明备注pubic 可以被所有类访问(使用)public 类必须定义在和类名相同的同名文件中package可以被同一个包中的类访问(使用)默认的访问权限,可以省略此关键字,可以定义在和public类的同一个            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-24 18:45:40
                            
                                55阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Java 类名与方法名相同一定是构造方法吗?不是的;普通方法也可以和类名相同,但是必须要有返回值,和返回值类型;没有返回值就是构造方法;构造方法代码示例public class Test {
    private String name;
    private String age;
    private String sex;
    //提供无参构造方法
    public Test(            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-20 01:35:20
                            
                                154阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Java中类名与文件名的关系1.Java保存的文件名必须与类名一致; 2.如果文件中只有一个类,文件名必须与类名一致; 3.一个Java文件中只能有一个public类; 4.如果文件中不止一个类,文件名必须与public类名一致; 5.如果文件中不止一个类,而且没有public类,文件名可与任一类名一致。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-19 16:56:03
                            
                                284阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            目录1、方法一1.1、在AndroidStudio中查看1.2、样码1.3、输出结果(简单易读)2、方法二2.1、kotlin编译成class所在目录2.2、Kotlin样码2.3、注意2.4、Javap -public 输出结果2.5、javap -p -private 2.6、Javap -c 输出结果3、方法三3.1、Jadx反编译工具1、方法一1.1、在AndroidStudio            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-12 16:29:10
                            
                                1124阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # Kotlin 文件名反编译后的 Java 类名实现指南
在现代软件开发中,Kotlin 和 Java 作为 JVM 语言,常常需要互相转化和利用。今天,我们将介绍如何将 Kotlin 文件名反编译成 Java 类名。接下来,我们将通过一个标准流程,详细阐述每一步的实现。
## 流程概述
下面是实现 Kotlin 文件名反编译为 Java 类名的步骤:
| 步骤 | 描述 |
|----            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-10-11 03:28:24
                            
                                53阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # Java类名和方法名一样
在Java编程语言中,一个类通常包含多个方法来执行不同的操作。类名和方法名通常是不同的,以便更好地描述类的功能。然而,在某些情况下,我们也可以创建一个类名和方法名一样的方法。这种情况可能出现在需要简单且直观的场景中,例如只包含一个操作的简单类。
## 示例
让我们看一个简单的示例来说明Java类名和方法名一样的情况。假设我们有一个名为`Print`的类,它包含一            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-06-18 04:02:11
                            
                                59阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            java类名和文件名称不一样 java类名和包名            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-22 22:14:42
                            
                                160阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # 如何实现“java 引入的包类名和本地项目的类名一样”
作为一名经验丰富的开发者,我将向你介绍如何实现“java 引入的包类名和本地项目的类名一样”。首先,我们来看一下整个流程:
| 步骤 | 描述 |
| ---- | ---- |
| 1    | 创建一个本地项目 |
| 2    | 在项目中创建一个类 |
| 3    | 创建一个与包名相同的包 |
| 4    | 在包中创建            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-01-26 10:04:53
                            
                                65阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            new 类名(){方法定义} 这种写法是匿名内部类。1、匿名内部类就是没有名字的内部类。这是Java为了方便程序员编写程序,而设计的一个机制。因为有时候有的内部类只需要创建一个它的对象就可以了,以后再不会用到这个类,这时候使用匿名内部类就比较合适,而且也免去了给它取名字的烦恼。 2、如果满足下面的一些条件,使用匿名内部类是比较合适的:  ·只用到类的一个实例。  ·类在定义后马上用到。  ·类非常            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-08 11:23:55
                            
                                318阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            因为:  Java是被解释执行的。它在运行时并不是将所有的class文件全都放到内存中。而是在遇到import的时候才去相应的文件目录找相应的class文件。  对于一个public类,它是可以被项目中任何一个类所引用的,只需在使用它前import一下它所对应的class文件即可。将类名与文件名一一对应就可以方便虚拟机 在相应的路径(包名)中找到相应的类的信息。如果不这么做的话,就很难去找,而且开            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-03 12:46:01
                            
                                54阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            包的命名  (全部小写,由域名定义)Java包的名字都是由小写单词组成。但是由于Java面向对象编程的特性,每一名Java程序员都 
可以编写属于自己的Java包,为了保障每个Java包命名的唯一性,在最新的Java编程规范中,要求程序员在自己定义的包的名称之前加上唯一的前缀。
 由于互联网上的域名称是不会重复的,所以程序员一般采用自己在互联网上的域名称作为自己程序包的唯一前缀。 例如:net.f            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-22 11:13:57
                            
                                158阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            今天闲的蛋疼,做了一下spring自动注入的例子:看看spring自动注入的是否可以区别出不同包下相同名字的Java类,答案是不能,spring居然这么渣。整体结构图如下:1:首先建立两个同名的java类和接口com.a包下面有一个IAutoInject接口和实现类AutoInject,同理com.b包下面也有相同的接口和实现类。同时加上spring声明bean的注解,@component或者@s            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-24 17:12:16
                            
                                238阅读
                            
                                                                             
                 
                
                                
                    