• 强语言与弱语言/加载配置文件


    静态语言和动态语言的区别

    基本概念

    静态语言(强类型语言)

    静态语言是在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型。 例如:C++、Java、Delphi、C#等。

    动态语言(弱类型语言)

    动态语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。 例如PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell等等。

    强类型定义语言

    强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。

    弱类型定义语言

    数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。

    两者区别

    特性

    强类型语言是一旦变量的类型被确定,就不能转化的语言。 弱类型语言则反之,一个变量的类型是由其应用上下文确定的。

    静态语言的优势

    1. 由于类型的强制声明,使得IDE有很强的代码感知能力,故,在实现复杂的业务逻辑、开发大型商业系统、以及那些生命周期很长的应用中,依托IDE对系统的开发很有保障;

    2. 由于静态语言相对比较封闭,使得第三方开发包对代码的侵害性可以降到最低;

    动态语言的优势

      1. 思维不受束缚,可以任意发挥,把更多的精力放在产品本身上;

      2. 集中思考业务逻辑实现,思考过程即实现过程;

    Class对象功能:

    • 获取功能:

      1.获取成员变量们

      • Field[] getFields() :获取所有public修饰的成员变量

      • Field getField(String name) 获取指定名称的 public修饰的成员变量

      • Field[] getDeclaredFields() 获取所有的成员变量,不考虑修饰符

      • Field getDeclaredField(String name)

      2.获取构造方法们

      • Constructor<?>[] getConstructors()

      • Constructor<T> getConstructor(类<?>... parameterTypes)

      • Constructor<T> getDeclaredConstructor(类<?>... parameterTypes)

      • Constructor<?>[] getDeclaredConstructors()

      3.获取成员方法们:

      • Method[] getMethods()

      • Method getMethod(String name, 类<?>... parameterTypes)

      • Method[] getDeclaredMethods()

      • Method getDeclaredMethod(String name, 类<?>... parameterTypes)

        获取全类名

      • String getName()

    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.URL;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.util.Properties;
    
    /**
     * jdbc读到内存中
     * 体验反射:
     */
    public class DBUtils {
        static Properties properties = new Properties();
        private static  String DRIVER;
        private static  String URL;
        private static  String USER;
        private static  String PASSWORD;
        public static void main(String[] args) throws IOException {
            System.out.println("main:"+"hello");
            Connection connection=DBUtils.getConnection(URL,USER,PASSWORD);
        }
    
    
       static {
           String path="jdbc.properties";
           InputStream is= DBUtils.class.getClassLoader().getResourceAsStream(path);
           try {
               properties.load(is);
           } catch (IOException e) {
               e.printStackTrace();
           }
           DRIVER=  properties.getProperty("driver");
           URL= properties.getProperty("url");
           USER= properties.getProperty("user");
           PASSWORD=properties.getProperty("password");
           System.out.println("DRIVER:"+DRIVER+"URL:"+URL+"");
           try {
               Class.forName(DRIVER);
           } catch (ClassNotFoundException e) {
               e.printStackTrace();
           }
       }
       static  Connection connection= null;
       public static Connection getConnection(String url,String user,String password){
           try {
               connection= DriverManager.getConnection(url,user,password);
               System.out.println("connection:"+connection);
           } catch (SQLException e) {
               e.printStackTrace();
           }catch (Exception e){
               e.printStackTrace();
           }
           return connection;
       }
    
    }

    创建properties配置文件jdbc.properties:

    1 driver=com.mysql.jdbc.Driver
    2 url=jdbc:mysql://127.0.0.1:3306/fx3?useUnicode=true&characterEncoding=UTF-8
    3 user=root
    4 password=123456

     运行效果图:

    心得:

      世界上只有想不通的人,没有走不通的路。人生就像是一个马尔可夫链,你的未来取决于你当下正在做的事,而无关于过去做完的事。

  • 相关阅读:
    apiCode/1/1.1/1.1.1
    ZOJ 3195 Design the city LCA转RMQ
    IOS学习之路十二(UITableView下拉刷新页面)
    ASP.NET 缓存技术分析
    电信支撑系统
    android提权
    awk
    linux高效shell命令总结
    C关键字typedef及argc,argv,env参数含义
    2013年6月编程语言排行榜,C语言位据第一位
  • 原文地址:https://www.cnblogs.com/javacyq/p/13550158.html
Copyright © 2020-2023  润新知