java编程中什么是硬编码,java中硬编码和软编码有什么区别
大家好,关于java编程中什么是硬编码很多朋友都还不太明白,今天小编就来为大家分享关于java中硬编码和软编码有什么区别的知识,希望对各位有所帮助!
java中硬编码和软编码有什么区别
java中硬编码和软编码的区别如下:
硬编码指的是在程序代码中直接使用固定的值或者字符串,而不是通过变量、常量、配置文件等方式进行管理。这种方式通常会导致代码可读性差、维护成本高等问题。
软编码则是通过变量、常量、配置文件等方式将程序中需要的值或者字符串进行统一管理,以便后期修改和维护。这种方式通常能够提高代码的可读性、可维护性和灵活性。
硬编码和软编码是两种不同的编程方式,前者虽然看似简单,但在实际开发过程中往往会带来诸多问题;而后者则更加规范和可靠,能够提高代码的可维护性和可扩展性。
JAVA中反射是什么
JAVA中反射是动态获取信息以及动态调用对象方法的一种反射机制。
Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。而这也是Java被视为动态语言的一个关键性质。
Java反射的功能是在运行时判断任意一个对象所属的类,在运行时构造任意一个类的对象,在运行时判断任意一个类所具有的成员变量和方法,在运行时调用任意一个对象的方法,生成动态代理。
扩展资料:
JAVA中反射实例:
1、Class superClass=clazz.getSuperclass();//获取父类。
System.out.println("getSuperclass:"+superClass)。
2、Class[] interfaces=clazz.getInterfaces();//获取实现接口。
System.out.println("getInterfaces:"+interfaces.length)。
3、Constructor[] cons=clazz.getConstructors();//构造方法。
System.out.println("getConstructors:"+cons.length)。
参考资料来源:百度百科: JAVA反射机制
java编程中Properties类的具体作用和使用!
如果不熟悉 java.util.Properties类,那么现在告诉您它是用来在一个文件中存储键-值对的,其中键和值是用等号分隔的。(如清单 1所示)。最近更新的java.util.Properties类现在提供了一种为程序装载和存储设置的更容易的方法: loadFromXML(InputStreamis)和 storeToXML(OutputStream os, String comment)方法。
一下是详细的说明,希望能给大家带来帮助。
清单 1.一组属性示例
foo=bar
fu=baz
将清单 1装载到 Properties对象中后,您就可以找到两个键( foo和 fu)和两个值( foo的 bar和 fu的baz)了。这个类支持带\u的嵌入 Unicode字符串,但是这里重要的是每一项内容都当作 String。
清单2显示了如何装载属性文件并列出它当前的一组键和值。只需传递这个文件的 InputStream给 load()方法,就会将每一个键-值对添加到 Properties实例中。然后用 list()列出所有属性或者用 getProperty()获取单独的属性。
清单 2.装载属性
import java.util.*;
import java.io.*;
public class LoadSample{
public static void main(String args[]) throws Exception{
Properties prop= new Properties();
FileInputStream fis=
new FileInputStream("sample.properties");
prop.load(fis);
prop.list(System.out);
System.out.println("\nThe foo property:"+
prop.getProperty("foo"));
}
}
运行 LoadSample程序生成如清单 3所示的输出。注意 list()方法的输出中键-值对的顺序与它们在输入文件中的顺序不一样。Properties类在一个散列表(hashtable,事实上是一个 Hashtable子类)中储存一组键-值对,所以不能保证顺序。
清单 3. LoadSample的输出
-- listing properties--
fu=baz
foo=bar
The foo property: bar
XML属性文件
这里没有什么新内容。 Properties类总是这样工作的。不过,新的地方是从一个 XML文件中装载一组属性。它的 DTD如清单 4所示。
清单 4.属性 DTD
<?xml version="1.0" encoding="UTF-8"?>
<!-- DTD for properties-->
<!ELEMENT properties( comment?, entry*)>
<!ATTLIST properties version CDATA#FIXED"1.0">
<!ELEMENT comment(#PCDATA)>
<!ELEMENT entry(#PCDATA)>
<!ATTLIST entry key CDATA#REQUIRED>
如果不想细读 XML DTD,那么可以告诉您它其实就是说在外围<properties>标签中包装的是一个<comment>标签,后面是任意数量的<entry>标签。对每一个<entry>标签,有一个键属性,输入的内容就是它的值。清单 5显示了清单 1中的属性文件的 XML版本是什么样子的。
清单 5. XML版本的属性文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM" http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>Hi</comment>
<entry key="foo">bar</entry>
<entry key="fu">baz</entry>
</properties>
如果清单 6所示,读取 XML版本的 Properties文件与读取老格式的文件没什么不同。
清单 6.读取 XML Properties文件
import java.util.*;
import java.io.*;
public class LoadSampleXML{
public static void main(String args[]) throws Exception{
Properties prop= new Properties();
FileInputStream fis=
new FileInputStream("sampleprops.xml");
prop.loadFromXML(fis);
prop.list(System.out);
System.out.println("\nThe foo property:"+
prop.getProperty("foo"));
}
}
关于资源绑定的说明
虽然 java.util.Properties类现在除了支持键-值对,还支持属性文件作为 XML文件,不幸的是,没有内置的选项可以将ResourceBundle作为一个 XML文件处理。是的, PropertyResourceBundle不使用 Properties对象来装载绑定,不过装载方法的使用是硬编码到类中的,而不使用较新的 loadFromXML()方法。
运行清单 6中的程序产生与原来的程序相同的输出,如清单 2所示。
保存 XML属性
新的 Properties还有一个功能是将属性存储到 XML格式的文件中。虽然 store()方法仍然会创建一个类似清单 1所示的文件,但是现在可以用新的 storeToXML()方法创建如清单 5所示的文件。只要传递一个 OutputStream和一个用于注释的 String就可以了。清单 7展示了新的 storeToXML()方法。
清单 7.将 Properties存储为 XML文件
import java.util.*;
import java.io.*;
public class StoreXML{
public static void main(String args[]) throws Exception{
Properties prop= new Properties();
prop.setProperty("one-two","buckle my shoe");
prop.setProperty("three-four","shut the door");
prop.setProperty("five-six","pick up sticks");
prop.setProperty("seven-eight","lay them straight");
prop.setProperty("nine-ten","a big, fat hen");
FileOutputStream fos=
new FileOutputStream("rhyme.xml");
prop.storeToXML(fos,"Rhyme");
fos.close();
}
}
运行清单 7中的程序产生的输出如清单 8所示。
清单 8.存储的 XML文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM" http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>Rhyme</comment>
<entry key="seven-eight">lay them straight</entry>
<entry key="five-six">pick up sticks</entry>
<entry key="nine-ten">a big, fat hen</entry>
<entry key="three-four">shut the door</entry>
<entry key="one-two">buckle my shoe</entry>
</properties>
在这里改了一个例子:
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
*实现properties文件的读取
*@author haoxuewu
*/
public class Test{
public static void main(String[] args){
try{
long start= System.currentTimeMillis();
InputStream is= new FileInputStream("conf.properties");
Properties p= new Properties();
p.load(is);
is.close();
System.out.println("SIZE:"+ p.size());
System.out.println("homepage:"+ p.getProperty("homepage"));
System.out.println("author:"+ p.getProperty("author"));
System.out.println("school:"+ p.getProperty("school"));
long end= System.currentTimeMillis();
System.out.println("Cost:"+(end- start));
} catch(IOException ioe){
ioe.printStackTrace();
}
}
}
conf.properties
# Configuration file
homepage= http://www.blogjava.net/haoxuewu
author= bbflyerwww
school= jilinjianzhugongchengxueyuan
Result
SIZE:3
homepage: http://www.blogjava.net/haoxuewu
author: bbflyerwww
school: jilinjianzhugongchengxueyuan
java编程中什么是硬编码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java中硬编码和软编码有什么区别、java编程中什么是硬编码的信息别忘了在本站进行查找哦。