java练习总结day01
1.实例变量:定义在类中,方法外的变量。这种变量在创建对象时实例化,成员变量可以在类中方法、构造方法、特定类的语句块访问,分配了内存空间后会给所有的成员变量一次初始化,没有赋值的会给成员变量对应类型的值,数据类型不同则默认值不同
2.局部变量:在方法、构造方法或者语句块中定义的变量成为局部变量。变量声明和初始化都是在方法中,方法结束后,变量自动销毁。用的时候直接入栈,如果没有赋值,这个变量就没有初始值,也就无法操作,所以局部变量要初始化
3.类变量:类变量声明在类中、方法外,但必须声明为static类型
4.final变量,final 修饰的变量。如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象
5.代码 float t = 5.1; int i = t;
答:代码不能编译,float t = 5.1错,应该为float t = 5.1f
6.关于PreparedStatement与Statement
答:
Statement statement = conn.createStatement();
PreparedStatement preStatement =conn.prepareStatement(sql);
执行的时候:
ResultSet rSet = statement.executeQuery(sql); ResultSet pSet =
preStatement.executeQuery();
可以看出preparedStatement有预编译的过程,已经绑定了sql,之后无论执行多少遍,都不会在去进行编译
①一般而言,PreparedStatement比Statement执行效率更高
②Statement每次都会解析/编译SQL,确立并优化数据获取路径
③preparedStatement扫描的结果集比Statement大
7.①虚拟机中没有泛型,只有普通类和普通方法
②所有泛型类的类型参数在编译时都会被擦除
③泛型的类型擦除机制意味着不能在运行时动态获取List中T的实际类型(错),反射可以在运行时获取
8.ConcurrentHashMap和HashMap实现类可以用于存储键,值对,并且方法调用提供了基本的多线程安全支持
9.①一个类可以实现多个接口
②protected成员在子类可见性可以修改
③通过super可以调用父类构造函数
④String是不可修改的,且java运行环境中对string对象有一个对象池保存
10.