摘要:
常见的配置文件格式: 1.properties 里面内容的格式 key=value 2.xml 后期详细解释 若我们的配置文件为properties,并且放在src目录下. 我们可以通过 ResourceBundle工具快速获取里面的配置信息 使用步骤: 1.获取ResourceBundle 对象: 阅读全文
摘要:
C3P0:(★) hibernate和spring使用 有自动回收空闲连接的功能. 使用步骤: 1.导入jar包(c3p0-0.9.1.2.jar) 2.使用api a.硬编码(不推荐) new ComboPooledDataSource() b.配置文件 配置文件的名称:c3p0.properti 阅读全文
摘要:
通过连接池(数据源)优化我们的操作. 需求: 使用jdbc的时候,没操作一次都需要获取连接(创建)用完之后把连接释放掉了(销毁),通过连接池来优化curd操作. 技术分析: 连接池 连接池概述: 管理数据库的连接, 作用: 提高项目的性能. 就是在连接池初始化的时候存入一定数量的连接,用的时候通过方 阅读全文
摘要:
通过java_JDBC链接数据库 jdbc: java操作数据库.jdbc是oracle公司指定的一套规范(一套接口) 驱动:jdbc的实现类.由数据库厂商提供. 我们就可以通过一套规范操作不同的数据库了(多态) jdbc作用: 连接数据库 发送sql语句 处理结果 步骤: 导入jar包: jdbc 阅读全文
摘要:
查询语句,在开发中使用的次数最多,此处使用“zhangwu” 账务表。 查询语句,在开发中使用的次数最多,此处使用“zhangwu” 账务表。 查询语句,在开发中使用的次数最多,此处使用“zhangwu” 账务表。 创建账务表: 创建账务表: CREATE TABLE zhangwu ( id IN 阅读全文
摘要:
数据库操作 创建数据库 格式: * create database 数据库名; * create database 数据库名 character set 字符集; 例如: #创建数据库 数据库中数据的编码采用的是安装数据库时指定的默认编码 utf8 CREATE DATABASE day21_1; 阅读全文
摘要:
常见的数据库管理系统 MYSQL :开源免费的数据库,小型的数据库.已经被Oracle收购了.MySQL6.x版本也开始收费。 Oracle :收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。 DB2 :IBM公司的数据库产品,收费的。常应用在银行系统中. SQ 阅读全文
摘要:
所谓的线程死锁,是指在多线程运行的过程中,线程1拥有锁a,而需要锁b来继续执行, 而此时,线程2拥有锁b而需要锁a来继续执行,那么此时会形成死锁,两个线程会同时等待。 在编程的过程中应尽量的避免线程死锁。 关于线程锁可以查看:线程锁详解 有时在面试中会要求写出一个死锁的程序演示,如下: 1 //写一 阅读全文
摘要:
首先回顾一下单利设计模式: 单利设计模式是通过某种方式使某个类只能创建一个对象实例供外界使用。 单利设计模式分为懒汉式和饿汉式: 饿汉式是线程安全的: 1 //饿汉式单利设计模式: 2 class Single{ 3 private static final Single single = new 阅读全文
摘要:
线程在执行的过程中,容易出现安全问题,除了线程死锁外,所谓的安全问题就是: 对需要同步的变量进行多线程操作时,会使变量的判定发生问题,比如卖票的问题可能出现0票或者-1,-2的情况, 那么我们就需要一个锁来对需要同步的变量或者方法进行标记,指示: 该变量或方法在某个时刻或时间段只能被一个线程所执行 阅读全文
摘要:
创建线程有两种方法: 1、继承Thread类 2、实现Runnable接口 为什么还有第二种方法? 因为有的时候某个类已经有了父类就不能在继承线程类,那么为了解决单继承的局限性 就可以在实现Runnable接口来被线程调用。 创建线程的第一种方法:继承Thread类: 步骤: 1、创建类继承Thre 阅读全文
摘要:
java语言中,数组对象并不是从某个类实例化出来的,而是JVM动态创建的.对数组对象使用如下操作,可看到数组对应的Class对象.通过RTTI(Run-Time Type Information)可直接检查数组的运行时类型,以及它的签名.下方的 “[L”就是int[]/Integer[] 的运行类型 阅读全文
摘要:
反射: 1.获取对应的class对象 方式1:★ Class clazz=Class.forName("全限定名"); 方式2: Class clazz=类名.class; 方式3: Class clazz==对象.getClass(); 方式4: Class c1 = Integer.TYPE; 阅读全文