java基础知识点收集002

1.阐述JDBC操作数据库的步骤

    Class<?> aClass = Class.forName("com.mysql.jdbc.Driver");//加载驱动
    Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/qf", "root", "root");//获取连接
    PreparedStatement preparedStatement = connection.prepareStatement("select * from user where name like  '%诗%';");//创建sql语句
    ResultSet resultSet = preparedStatement.executeQuery();//执行sql语句
    while (resultSet.next()){//[处理结果]
        int id=resultSet.getInt("id");
    String name=resultSet.getString("name");
    String em=resultSet.getString("email");
    System.out.println(id+"======="+name+"---"+em);
}
    preparedStatement.close();//关闭资源
    connection.close();

提示:关闭外部资源的顺序应该和打开的顺序相反,也就是说先关闭ResultSet、再关闭Statement、在关闭Connection。上面的代码只关闭了Connection(连接),虽然通常情况下在关闭连接时,连接上创建的语句和打开的游标也会关闭,但不能保证总是如此,因此应该按照刚才说的顺序分别关闭。此外,第一步加载驱动在JDBC4.0中是可以省略的(自动从类路径中加载驱动)

Statement和PreparedStatement有什么区别?哪个性能更好?

  •  PreparedStatement接口代表预编译的语句,它主要的优势在于可以减少SQL的编译错误并增加SQL的安全性(减少SQL注射攻击的可能性);
  •  PreparedStatement中的SQL语句是可以带参数的
  •  当批量处理SQL或频繁执行相同的查询时,PreparedStatement有明显的性能上的优势

2.Java中基本数据类型
数据类型 大小 包装类
boolean(布尔型) 1(8位) Boolean(布尔型)
byte(字节) 1(8位) Byte(字节)
char(字符型) 2(16位) Character(字符型)
short(短整型) 2(16位) Short(短整型)
int(整型) 4(32位) Integer(整型)
long(长整型) 8(32位) Long(整型)
float(浮点型) 4(32位) Float(浮点型)
double(双精度) 8(64位) Double(双精度)

3.二分法查找
前提:必须是已经排序的数组;

public static void main(String[] args){
int is={12,44,22,34,66,33,77,35,3234,442};
Arrays.sort(is);

		int target=33;
		int high=is.length-1;
		int low=0;
		int mid=(high+low)/2;
		while(low<=high){
		if(is[mid]==target){
		return mid;
		}
		else if(is[mid]>target){
		high=mid-1;
		}else if(is[mid]<target){
		low=mid+1;
		}
		
		}
		return -1;
}

4.事务的4大特性(ACID)

  • 原子性(Atomicity):事物是数据库操作的基本逻辑单元,同一个事物中的所有操作要么全部执行,要么全部都不执行。
  • 一致性(Consistency):事物中的一些列操作要保持一致性,要么都成功,要是有失败的就要进行回滚。
  • 隔离性(Isolation):多个并发事务之间数据要相互隔离,互不影响,通过设置数据库的隔离级别,可以达到不同的隔离效果(就是解决不同的问题,效率与解决问题的取舍)。
  • 持久性(Durability):事物完成后,事物对数据库所做的更改,将永久保存在数据库中,不会被回滚。

隔离级别:

  1. read uncommit:什么都解决不了
  2. read commit :解决了脏读
  3. repeatable read:解决脏读,重复读,未解决幻读(隔离级别默认的)
  4. serializable(串行化,序列化): 最为严格,解决所有

5.synchronized关键字的用法

  • 同步代码块:synchronized(对象){
    代码块
    }
  • 同步方法(作为修饰符修饰方法):public static synchronized void get(){
    代码块
    }

6.构造器(constructor)是否可被重写(override)
构造器Constructor不能被继承,因此不能被重写(Override),但是可以被重载(Overload)

7.JDK是java开发环境,包含JRE和JVM
jre是java的运行环境,jdk是java的开发工具包,jvm则是让java能够在任何平台运行的虚拟机。其中关系是jdk包含jre和tools(工具类),而jre下包含类库和jvm

8.得到Class的三种方式是什么

  • 对象。getClass();
  • 类名。class
  • 使用的Class类中的方法,静态的forName方法。:Class =Class.forName(“java.util.Data”);

9.什么是迭代器(Iterator)
迭代器是一种就是进行类似循环的操作,集合的总接口Collection和Map都继承Iterator接口,各自的实现类(集合)实现接口中的Iterator()方法,实现遍历。

10.什么是隐式的类型转化?显式的类型转化是什么?

  • 所谓隐士转换就是向上转型,不用加强制转换
  • 显示转换就是向下转型,需要加强制转换
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值