1、使用URLConnection去下载网上任意一个资源
BufferedOutputStream bos = null;
BufferedInputStream bis= null;
URL url = null;
HttpURLConnection urlConnection = null;
try {
url = new URL("https://www.jingdong.com");
urlConnection = (HttpURLConnection) url.openConnection();
InputStream is = urlConnectio.getInputStream();
bis = new BufferedInputStream(is);
FileOutputStream fos = new FileOutputStream(" wenjian");
bo = new BufferedOutputStream(fos);
int i = 0;
while ((i = bis.readLine()) != -1) {
bos.write(i);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
urlConnectio.disconnect();
if (bo!=null){
try {
bo.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (bi!=null){
try {
bi.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2、分别使用一下5种方式获取Class对象
1 使用数据类型.class的方式可以获取对应类型的Class对象。
2 使用引用/对象.getClass()的方式可以获取对应类型的Class对象。
3 使用包装类.TYPE的方式可以获取对应基本数据类型的Class对象。
4 使用Class.forName()的方式来获取参数指定类型的Class对象。
5 使用类加载器ClassLoader的方式获取指定类型的Class对象。
public static void main(String[] args) throws ClassNotFoundException {
Class c1=String.class;
System.out.println("c1:"+c1);
String s="ss";
c1=s.getClass();
System.out.println("c1:"+c1);
c1=Integer.TYPE;
System.out.println("c1:"+c1);
c1 = Class.forName("java.lang.String");
System.out.println("c1:"+c1);
ClassLoader classLoader = zuo02.class.getClassLoader();
c1=classLoader.loadClass("java.lang.String");
System.out.println("c1:"+c1);
3、Constructor练习
1.使用原始方式以无参形式构造Person类型的对象并打印
2.使用反射机制以无参形式构造Person类型的对象并打印
3.使用原始方式以有参方式构造Person类型的对象并打印
4.使用反射机制以有参方式构造Person类型的对象并打印
5.使用反射机制获取Person类中所有的公共构造方法并打印
public static void main(String[] args) throws Exception {
Person p1 = new Person();
System.out.println(p1);
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("1.txt")));
String s = br.readLine();
Class c1 = Class.forName(s);
Object o = c1.newInstance();
if (o instanceof Person){
Person p2 = (Person) o;
System.out.println("反射机制 " + p2);
}
br.close();
Person p3 = new Person("as" , 66);
System.out.println("原始方式 " + p3);
Class c3 = Person.class;
Constructor constructor = c3.getConstructor(String.class, int.class);
Object o1 = constructor.newInstance("个数", 33);
System.out.println("反射: " + o1);
Constructor[] constructors = c3.getConstructors();
for (Constructor ct : constructors){
System.out.println(ct.getModifiers());
System.out.println(+ ct.getName());
Class[] parameterTypes = ct.getParameterTypes();
for (Class cs : parameterTypes){
System.out.print(cs + " ");
}
}
}
}
class Person {
private String name ;
private int age ;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}