在一个.java文件中可以有多个同级类,  其修饰符只可以public/abstract/final/和无修饰符
1.public修饰的只能有一个,且必须要与文件名相同:
因为jvm虚拟机为了提高查找类的速度,使用import语句导入的时候,只会导入对应空间的文件名所对应的class文件,而public文件是大家都要使用的,因此直接导入这个类名对应的class文件即可。
import com.by.comm.OpenFile; 
           com.by.comm 包名
           OpenFile 类文件名
OpenFile.open(System.in);
 OpenFile : 类名
open(System.in)方法名
以上也解释了为什么会有静态引用,静态应用直接引入所有类的静态属性、方法。后面可以直接使用,无须通过类名引用
2.若没有public的则可与文件名不同
Java编译器在编译的时候,如果整个Java文件(编译单元)都没有public类(对外的公开接口类),类加载器子就无需从这方面直接去加载该编译单元产生的所有的字节码文件(.class文件),那么也就是无需去寻找编译后字节码文件存放位置。而类名和文件名一致是为了方便虚拟机在相应的路径中找到相应的类所对应的字节码文件。所以在没有public类的Java文件中,文件名和类名都没什么联系。
3.该文件同级的类之间可以互相调用,但是除了public的类,其他不能够在其他文件调用
在一个.java文件中由类/Enum/接口/Anontation其中至少一个类型组成。单独一个方法/变量不能独自存在与文件中,所以公用方法的封装也是做成类方法。原因是java是类加载机制,需要编译一个java文件成多个class文件,当类来使用。
4.用javac 编译这个.java文件的时候,它会给每一个类生成一个.class文件
 
-

JAVA类 与类文件相关推荐

  1. java中引用一个文件数据_JAVA-基础-引用数据类型(类)

    引用数据类型分类 我们可以把类的类型为两种: l 第一种,Java为我们提供好的类,如Scanner类,Random类等,这些已存在的类中包含了很多的方法与属性,可供我们使用. l  第二种,我们自己 ...

  2. 使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析

    有时候我们需要直接用jdk提供的java命令来执行class文件让软件运行起来,特别是很多初学者,但经常会发现如下提示: 用eclipse或用ant则没有问题. 其实原因很简单,我们忽略了2个细节. ...

  3. java探针之修改类字节码文件

    java探针利用了javaAgent + ASM字节码注入工具实现了动态修改类文件的功能.像skywalking和arthas都使用到了这个技术. 具体原理为: jdk1.5以后引入了javaAgen ...

  4. java 多个类共用属性_java中读写Properties属性文件公用方法详解

    前言 大家都知道Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改 ...

  5. javah导出类的头文件抛出异常——java.lang.IllegalArgumentException: Not a valid class name(原因及解决方法)

    [0]README 0.1) 本文旨在给出 java.lang.IllegalArgumentException 异常的原因 和 处理方法, 该异常和 javah 没有半毛钱关系 : 0.2) 本文附 ...

  6. 从java进程里dump出类的class文件的小工具--dumpclass

    Serviceability Agent 想要查看一些被增强过的类的字节码,或者一些AOP框架的生成类,就需要dump出运行时的java进程里的字节码. 从运行的java进程里dump出运行中的类的c ...

  7. 利用java.io.File类实现遍历本地磁盘上指定盘符或文件夹的所有的文件

    2016-11-18 这是本人的第一篇随笔博客,纠结了半天还是选择自己学的时候比较用心的一些知识点上.利用java.io.File类指定本地的文件夹进行遍历所有的文件. package org.lxm ...

  8. java多个类调用,java起用多进程调用某个类(是class文件)

    java启用多进程调用某个类(是class文件) import java.io.BufferedInputStream; import java.io.BufferedReader; import j ...

  9. java基础 day12-FileInputStream类,文件的复制,缓冲流,Propertes文件,xml文件读写,网络socket编程(构建TCP客户端),内部类

    FileInputStream类的其他常用方法() /**在project下新建temp文件,内容为abcdef*FileInputStream类的其他常用方法:* int available():返 ...

  10. Java 使用Tailer类监听文件

    线程创建的三种方式:   FileDataListener listener = new FileDataListener(path,this);         //使用单线程池线程监听文件     ...

最新文章

  1. [C# 网络编程系列]专题十:实现简单的邮件收发器
  2. 185页深度报告 扒一扒AI金融的老底【附下载】
  3. EFS 加密文件系统
  4. php链接页面时加..,怎么给一个PHP密码访问页面加超链接
  5. Codeforces Round #527 (Div. 3) 总结 A B C D1 D2 F
  6. 9.Boost之正则regex
  7. [BZOJ 4827][Hnoi2017]礼物
  8. php上个月的最后一天,在PHP中查找上个月的最后一天
  9. 会话Cookie及session的关系(Cookie Session)
  10. 如何在 SAP 电商云 Spartacus UI 首页的产品展示里显示视频
  11. 使用SAP Leonardo上的机器学习服务提取图片的特征向量
  12. 阿里数据人标配的高端鼠标垫,我的粉丝每人包邮送一块
  13. Linux命令之目录和文件操作
  14. 【随记】Q号解除限制一波三折
  15. 力扣-111. 二叉树的最小深度
  16. chrome插件开发入门-保姆级攻略
  17. WPS 页码设置为(前1...前3,后4...后6)
  18. 朱朱的2020年(上)
  19. 纯JS实现懒加载+瀑布流布局
  20. 《零基础掌握 Python 入门到实战》笔记

热门文章

  1. win7下的nginx小demo
  2. angularJS中,怎么阻止事件冒泡
  3. 《DSP using MATLAB》第6章开始了
  4. mysql 索引计划_Mysql索引、查询计划、优化方向
  5. 修改fragment的进入动画_3DsMax—牛顿摆球(动量守恒摆球)动画
  6. 阿联酋esma认证怎么做_行业视野 | 关于阿联酋eCall 的要求更新
  7. ubuntu20.04下安装vmshare tools_Go语言的安装与配置-vscode
  8. hadoop元数据mysql中表字段_hive mysql元数据表说明
  9. 广工android嵌入式系统试卷_嵌入式系统考试试题A及答案
  10. c++定义一个动态全局变量_静态链接与动态链接的宏观概述及微观详解