当前位置:首页 » 资源管理 » java中私有资源存在哪里
扩展阅读
依赖石油出口说明什么 2025-07-28 11:12:22
豆腐价格为什么上涨 2025-07-28 11:06:24
汽车专用工具sst是什么 2025-07-28 10:49:27

java中私有资源存在哪里

发布时间: 2022-06-09 11:41:43

1. JAVA中构造方法私有化的作用是什么

构造方法是私有的,则意味着无法从除自身之外的任何类访问它。这是Java提供的访问控制机制。

使用得当,它可以产生安全性和功能性。构造函数(如常规方法)也可以声明为私有。可能想知道为什么需要一个私有构造函数,因为它只能从它自己的类访问。

(1)java中私有资源存在哪里扩展阅读:

工作原理

由四方面组成:

1,Java编程语言。

2,Java类文件格式。

3,Java虚拟机。

4,Java应用程序接口。

当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类。

通过调用类(这些类实现了Java API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码,存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用。

2. JAVA中类中的方法存储在什么地方

类加载时 方法信息保存在一块称为方法区的内存中, 并不随你创建对象而随对象保存于堆中。可参考《深入java虚拟机》前几章。
另参考(他人文章):
如果instance method也随着instance增加而增加的话,那内存消耗也太大了,为了做到共用一小段内存,Java 是根据this关键字做到的,比如:instance1.instanceMethod(); instance2.instanceMethod(); 在传递给对象参数的时候,Java 编译器自动先加上了一个this参数,它表示传递的是这个对象引用,虽然他们两个对象共用一个方法,但是他们的方法中所产生的数据是私有的,这是因为参数被传进来变成call stack内的entry,而各个对象都有不同call stack,所以不会混淆。其实调用每个非static方法时,Java 编译器都会自动的先加上当前调用此方法对象的参数,有时候在一个方法调用另一个方法,这时可以不用在前面加上this的,因为要传递的对象参数就是当前执行这个方法的对象。

3. 请问java中 公有,私有,保护的使用范围是什么

作用域有4中

1,public 2,protected 3,(default) 4,private
1任何类都可以访问
2在同一个包中的所有类可以访问,以及该类的子类
3同一个包中的所有类
4只能在本类中访问
希望能帮到你!

4. java项目中文件的路径

java项目中文件的路径-方法大全

一、 相对路径的获得

说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目)

System.getProperty("user.dir");

上述相对路径中,java项目中的文件是相对于项目的根目录web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于tomcat安装目录in)

二 类加载目录的获得(即当运行时某一类时获得其装载目录)
1.1)通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)

InputStreamis=TestAction.class.getClassLoader().getResourceAsStream("test.txt");(test.txt文件的路径为 项目名src est.txt;类TestPath所在包的第一级目录位于src目录下)

三 web项目根目录的获得(发布之后)
1 从servlet出发

可建立一个servlet在其的init方法中写入如下语句(没有请求的话会抛空指针导常)

ServletContext s1=this.getServletContext();
String temp=s1.getRealPath("/"); (关键)
结果形如:F: omcat-6.0.36webapps est(test为项目名字)

如果是调用了s1.getRealPath("")则输出F: omcat-6.0.36webapps est(少了一个"")

2 从httpServletRequest出发(没有请求的话会抛空指针导常)

String path=request.getSession().getServletContext().getRealPath("/");

结果形如:F: omcat-6.0.36webapps est

四 classpath的获取(在Eclipse中为获得src或者classes目录的路径),放在监听器,可以窗口启动获取路径

方法一Thread.currentThread().getContextClassLoader().getResource("").getPath()

String path = Thread.currentThread().getContextClassLoader()

.getResource("").getPath();

System.out.println("path========"+ path);输出:path========/F:/tomcat-6.0.36/webapps/test/WEB-INF/classes/


方法二JdomParse.class.getClassLoader().getResource("").getPath()(JdomParse为src某一个包中的类,下同)

eg:String p1=JdomParse.class.getClassLoader().getResource("").getPath();
System.out.println("JdomParse.class.getClassLoader().getResource--"+p1);

输出:JdomParse.class.getClassLoader().getResource-/F:/tomcat-6.0.36/webapps/test/WEB-INF/classes/

另外,如果想把文件放在某一包中,则可以 通过以下方式获得到文件(先定位到该包的最后一级目录)

eg String p2=JdomParse.class.getResource("").getPath();
System.out.println("JdomParse.class.getResource---"+p2);

输出:JdomParse.class.getResource--/F:/tomcat-6.0.36/webapps/test/WEB-INF/classes/

(JdomParse为src目录下jdom包中的类)

四 属性文件的读取:

方法 一

InputStream in = lnewBufferedInputStream(newFileInputStream(name));

Properties p =newProperties();p.load(in);

注意路径的问题,做执行之后就可以调用p.getProperty("name")得到对应属性的值

方法二

Locale locale =Locale.getDefault();
ResourceBundle localResource = ResourceBundle.getBundle("test/propertiesTest",locale);
String value = localResource.getString("test");
System.out.println("ResourceBundle: " + value);

工程src目录下propertiesTest.properties(名字后缀必须为properties)文件内容如下:

test=hello word

不通过Servlet获取路径

第一种实现

Java代码

URL url = ClassLoader.getSystemClassLoader().getResource("./");

File file =newFile(url.getPath());

File parentFile =newFile(file.getParent());

System.out.println("webRoot:"+parentFile.getParent());

第二种实现
首先写一个接听类 (推荐使用,容器启动时就执行,不会抛空指针异常,适合做定时器任务来删除服务器文件的路径)

Java代码:

package com.chinacreator.report.listener;

import javax.servlet.ServletContext;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

/**

* @authorxiaoqun.yi

*/

public class PathListener {

private staticServletContext servletContext;

public voidcontextDestroyed(ServletContextEvent sce) {

this.servletContext= sce.getServletContext();

System.out.println("path=======:"+servletContext.getRealPath("/"));

}

public voidcontextInitialized(ServletContextEvent arg0) {

}

}


在web.xml中加入如下配置

Java代码 :

<listener>

<listener-class>com.chinacreator.report.listener.PathListener</listener-class>

</listener>

五、Java中的getResourceAsStream有以下几种:
1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由 ClassLoader(类加载器)(获取资源)

2. Class.getClassLoader.getResourceAsStream(String path) :默认则是从ClassPath根下获取,path不能以’/'开头,最终是由ClassLoader获取资源。

3. ServletContext. getResourceAsStream(String path):默认从WebAPP根目录下取资源,Tomcat下path是否以’/'开头无所谓,当然这和具体的容器实现有关。

4. Jsp下的application内置对象就是上面的ServletContext的一种实现。

其次,getResourceAsStream 用法大致有以下几种:

第一: 要加载的文件和.class文件在同一目录下,例如:com.x.y 下有类me.class ,同时有资源文件myfile.xml

那么,应该有如下代码:

me.class.getResourceAsStream("myfile.xml");

第二:在me.class目录的子目录下,例如:com.x.y 下有类me.class ,同时在 com.x.y.file 目录下有资源文件myfile.xml

那么,应该有如下代码:

me.class.getResourceAsStream("file/myfile.xml");

第三:不在me.class目录下,也不在子目录下,例如:com.x.y 下有类me.class ,同时在 com.x.file 目录下有资源文件myfile.xml

那么,应该有如下代码:

me.class.getResourceAsStream("/com/x/file/myfile.xml");

总结一下,可能只是两种写法

第一:前面有 “ / ”

“ / ”代表了工程的根目录,例如工程名叫做myproject,“ / ”代表了myproject

me.class.getResourceAsStream("/com/x/file/myfile.xml");

第二:前面没有 “ / ”

代表当前类的目录

me.class.getResourceAsStream("myfile.xml");

me.class.getResourceAsStream("file/myfile.xml");

5. java中的private到底有什么用

private是访问控制修饰符,用来使用访问控制符来保护对类、变量、方法和构造方法的访问。

在程序中需要隐藏类的实现细节和保护类的数据时,就要使用private来修饰。例如:

public class Logger {

private String format;

public String getFormat() {
return this.format; }

public void setFormat(String format) {
this.format = format; }

}

实例中,Logger 类中的 format 变量为私有变量,所以其他类不能直接得到和设置该变量的值。为了使其他类能够操作该变量,定义了两个 public 方法:getFormat() (返回 format的值)和 setFormat(String)(设置 format 的值)。


(5)java中私有资源存在哪里扩展阅读

1、private的访问控制:

当前类:可见

同一包内:不可见

子孙类(同一包):不可见

子孙类(不同包):不可见

其他包:不可见

2、private的使用对象:变量、方法;不能修饰类(外部类)。

6. Java中资源是什么资源文件又是什么,谁能举个例子简单的例子。谢谢了

Java中除了.java和.class以外的文件都可以称作是资源,一般放在resource文件夹下面。
资源文件有很多种,常见的有.properties文件,.xml文件,其他还有.json等等

7. java中的资源文件应该放在哪里如果使用的是相对路径比如/image 那么image文件夹应该保存在字节码目录下

源文件放在context或者webroot下的web-info下的classes下,image放在context或者webroot下

8. java 有没有 私有类

java中有私有内部类,即在一个普通Java类里创建一个private的class。

用途:如果一个内部类只希望被外部类中的方法操作,那么可以使用private声明内部类,访问时必须在Out类里面生成In类的对象进行操作,此时的内部类只有外部类可控制。

私有内部类举例:

classOut{
privateintage=12;
privateclassIn{
publicvoidprint(){
System.out.println(age);
}
}
publicvoidoutPrint(){
newIn().print();
}
}

publicclassDemo{
publicstaticvoidmain(String[]args){
//此方法无效
/*
Out.Inin=newOut().newIn();
in.print();
*/
Outout=newOut();
out.outPrint();
}
}

9. Java项目中(不是web)资源文件路径问题

class.getResource("/").getPath()这个方法是获取的当前类所在的根目录,这个根目录在项目中就是src下面,你eclipse中,有的项目运行编译后,会把生成的class文件放到bin文件夹中,我是会maven管理的项目,输出就是:/C:/Workspace/JavaTest/target/classes/。你的视频中,可能它运行java文件不是在eclipse或IDE中运行的,而是在命令窗口中运行的,所以会和你输出的不一样。

10. java中子类调用父类有参构造,是否访问到了父类的私有属性数据存在哪里

子类无法访问父类的私有属性如果子类调用了父类的有参构造,父类私有属性在父类对象中保存的