1.
import java.io.*; public class Demo01 { public static void main(String[] args) { InputStream inputStream = Demo01.class.getClassLoader().getResourceAsStream("haha.txt"); BufferedReader br = new BufferedReader(new InputStreamReader(inputStream)); try { String text = br.readLine(); System.out.println(text); } catch (IOException e) { e.printStackTrace(); } } }
2.
package com.kangxuanyikai; public class Person { private String name; private int age; private String phoneNumber; public Person() {} public Person(String phoneNumber) { this.phoneNumber = phoneNumber; } public Person(String name, int age, String phoneNumber) { this.name = name; this.age = age; this.phoneNumber = phoneNumber; } 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; } public String getPhoneNumber() { return phoneNumber; } public void setPhoneNumber(String phoneNumber) { this.phoneNumber = phoneNumber; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + ", phoneNumber='" + phoneNumber + '\'' + '}'; } private void show() { System.out.println("你居然能调用我,哈哈,真牛逼!"); } }
2.1
@Test public void GetClassTest() throws ClassNotFoundException { //获取Class对象,方式一:通过全类名.class的方式获取,已知一个类存在 Class c1 = Person.class; System.out.println(c1); // class com.kangxuanyikai.Person //方式二:引用.getClass()得到类的Class对象 Person person = new Person(); Class c2 = person.getClass(); System.out.println(c2); // class com.kangxuanyikai.Person System.out.println(c1 == c2); // true //方式三:Class.forName("全类名"),所谓的全类名就是包名+类名 Class c3 = Class.forName("com.kangxuanyikai.Person"); System.out.println(c3); //class com.kangxuanyikai.Person System.out.println(c1 == c3 && c2 == c3); //true }
2.2
@Test public void GetConstructorTest() throws Exception { //获取类的Class对象 Class c = Class.forName("com.kangxuanyikai.Person"); //获取构造器public Constructor constructor = c.getConstructor(); Object o = constructor.newInstance(); System.out.println(o); System.out.println("-----------------------------------------------------"); //获取Person类中私有的构造器 Constructor declaredConstructor = c.getDeclaredConstructor(String.class); declaredConstructor.setAccessible(true); Object o1 = declaredConstructor.newInstance("13843838438"); System.out.println(o1); }
2.3
@Test public void GetMethodTest() throws Exception { Class c = Class.forName("com.kangxuanyikai.Person"); Constructor constructor = c.getConstructor(); Object o = constructor.newInstance(); Method setName = c.getMethod("setName", String.class); setName.invoke(o,"张飞"); System.out.println(o); System.out.println("----------------------------------------------"); Method declaredMethod = c.getDeclaredMethod("show"); declaredMethod.setAccessible(true); declaredMethod.invoke(o); System.out.println(o); }
3.
package com.java; import java.sql.*; public class JDBCDemo { public static void main(String[] args){ Connection connection = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; //1.在项目上新建一个文件夹,lib,导入mysql驱动,并将jar包加入到项目中 try { //2.注册驱动,使用到反射第三种方式 Class.forName("com.mysql.cj.jdbc.Driver"); //3.获取链接 String url = "jdbc:mysql://182.92.120.70:3306/userdb"; String username = "userdb"; String password = "root"; connection = DriverManager.getConnection(url, username, password); //System.out.println(connection); //4.获取预编译SQL,查询emp表中的数据 String sql = "select * from emp"; preparedStatement = connection.prepareStatement(sql); //5.查询,获取结果集(增删改,添加数据即可)并遍历;查询使用executeQuary(), //增删改使用execute()或者executeUpdate() resultSet = preparedStatement.executeQuery(); while (resultSet.next()) { String ename = resultSet.getString("ename"); String job = resultSet.getString("job"); System.out.println(ename + " ==== " + job); } } catch (Exception e) { e.printStackTrace(); } finally { //6.释放资源Connection,PreparedStatement,ResultSet,释放时需从后往前 //如果Connection,PreparedStatement,ResultSet对象为null,JVM GC if (resultSet != null) { try { resultSet.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } if (preparedStatement != null) { try { preparedStatement.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } if (connection != null) { try { connection.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } } } }