作者小头像 Lv.1
32 成长值

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

暂无数据
个人勋章
TA还没获得勋章~
成长雷达
20
12
0
0
0

个人资料

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

暂无数据

达成规则

发布时间 2021/09/06 09:50:21 最后回复 爱学习的多宝 2021/11/03 21:04:04 版块 社区活动
7073 134 0
他的回复:
华为云wangbbbccc第二周笔记一、JDBC概述和接口      JDBC是(Java DataBase Connectivity)Java访问数据库的标准规范,真正怎么操作数据库还需要具体的实现类,也就是数据库驱动;      每个数据库厂商根据自家数据库的通信格式编写好自己数据库的驱动;所以我们只需要会调用JDBC接口中的方法即可,数据库驱动由数据库厂商提供。      使用JDBC的好处程序员如果要开发访问数据库的程序,只需要会调用JDBC接口中的方法即可,不用关注类是如何实现的。      使用同一套Java代码,进行少量的修改就可以访问其他JDBC支持的数据库。  二、使用JDBC开发使用到的包      java.sql->所有与JDBC访问数据库相关的接口和类      javax.sql->数据库扩展包,提供数据库额外的功能,如:连接池      数据库的驱动->由各大数据库厂商提供,需要额外去下载,是对JDBC接口实现的类  三、数据库连接池      其实就是一个容器,存放数据库连接的容器.      当系统初始化好后,这个容器就会被创建,在容器中会申请一些连接对象      当用户来访问数据库时,就会从容器中获取连接对象      当用户访问完之后,会将连接对象归还给容器.  四、JDBC的核心API      DriverManager 类 1.管理和注册数据库驱动;2.得到数据库连接对象;      Connection 接口 一个连接对象,可用于创建statement和PreparedStatement对象      Statement 接口  一个SQL语句对象,用于将SQL语句发送给数据库服务器。      PreparedStatement 接口  一个SQL语句对象,是Statement的子接口。      ResultSet 接口  用于封装数据库查询的接口集,返回给客户端Java程序  五、JDBC对象之DriverManager:驱动管理器      注册驱动:这可以让JDBC知道要使用的是哪个驱动      获取Connection:如果可以获取到Connection,那么说明已经与数据库连接上了。      创建连接:DriverManager负责驱动程序管理,数据库驱动则是为了应用程序服务的,所以DricerManager的重要任务就是提供连接的获取。      驱动程序查找:DriverManager管理驱动程序,不仅仅提供了借助于驱动程序创建连接的能力,还能够返回给定的Driver或者Driver列表。  六、JDBC对象之Connection      表示连接,与数据库的通讯都是通过这个对象展开的,用来获取Statement对象。      执行对象:用于将SQL语句发送到数据库中,执行对象有3种      因为 DML 和 DQL都有专门的执行方法,所以该方法通常用来指定DDL      1. 执行更新操作(insert、update、delete等):`.int executeUpdate(String sql)`      只能执行DML   返回值: 表示影响了几行      3. 执行查询操作:`.ResultSet executeQuery(String sql)`,数据库在执行查询后会把查询结果返回,查询结果就是ResultSet      -只能执行DQL   返回值: 查询出来的结果集      4. oolean next():游标向下移动一行:判断当前行是否是最后一行(是否有数据)      如果是,则返回false,如果不是则返回true      5. getxxx(参数): 获取数据,xxx:代表数据类型      参数:        1. int: 代表列的编号,从1开始 -> getString(1)        2. String: 代表列的名字. -> getDouble("name");      使用步骤:        1. 将游标向下移动一行        2. 判断是否有数据        3. 获取数据  七、执行对象有3种      1. Statement继承自Wrapper      2. PreparedStatement继承自Statement      3. CallableStatement继承自PreparedStatement        区别与联系      Statement接口:提供了执行语句和获取结果的基本方法        使用场景:普通的不带参的查询SQL(带参数可能会造成SQL注入攻击)      PreparedStatement接口:添加了处理输入参数的方法 使用场景:支持可变参数的SQL      CallableStatement接口:添加了调用存储过程函数以及处理输出参数的方法 使用场景:支持调用存储过程,提供了对输出和输入/输出参数的支持。      这三种执行对象,都是为执行SQL而生,所以他们的重中之重全都是执行SQL。
发布时间 2021/09/06 09:50:21 最后回复 爱学习的多宝 2021/11/03 21:04:04 版块 社区活动
7073 134 0
他的回复:
华为云ID:wangbbbccc第一周笔记:第1章 Java异常处理实战1、错误和异常异常:指程序执行过程中出现的非正常情况,最终导致JVM非正常停止。异常体系:Throwable派生Error和Exception。Error:是无法处理的异常,比如OutOfMemoryError,一般发生这种异常,JVM会选择终止程序。因此我们编写程序时不需要关心这类异常。Exception:也就是我们经常见到的一些异常情况,比如NullPointerException、IndexOutOfBoundsException,这些异常是我们可以处理的异常。Exception类的异常包括checked exception和unchecked exception(unchecked exception也称运行时异常RuntimeException,当然这里的运行时异常并不是前面我所说的运行期间的异常,只是Java中用运行时异常这个术语来表示,Exception类的异常都是在运行期间发生的)。2、异常分类unchecked exception(非检查异常),也称运行时异常(RuntimeException),比如常见的NullPointerException、IndexOutOfBoundsException。对于运行时异常,java编译器不要求必须进行异常捕获处理或者抛出声明,由程序员自行决定。checked exception(检查异常),也称非运行时异常(运行时异常以外的异常就是非运行时异常),java编译器强制程序员必须进行捕获处理,比如常见的IOExeption和SQLException。对于非运行时异常如果不进行捕获或者抛出声明处理,编译都不会通过。在Java中,所有异常类的父类是Throwable类,Error类是error类型异常的父类,Exception类是exception类型异常的父类,RuntimeException类是所有运行时异常的父类,RuntimeException以外的并且继承Exception的类是非运行时异常。3、异常处理机制try{程序代码}catch(异常类 异常名){异常处理代码}可使用多个catch处理可能产生的不同类型异常,捕获的异常类型由上至下的顺序应是子类到父类的。4、异常机制用到的几个关键字:try、catch、finally、throw、throws。try    -- 用于监听。将要被监听的代码(可能抛出异常的代码)放在try语句块之内,当try语句块内发生异常时,异常就被抛出。catch  -- 用于捕获异常。catch用来捕获try语句块中发生的异常。finally -- finally语句块总是会被执行。它主要用于回收在try块里打开的物力资源(如数据库连接、网络连接和磁盘文件)。只有finally块,执行完成之后,才会回来执行try或者catch块中的return或者throw语句,如果finally中使用了return或者throw等终止方法的语句,则就不会跳回执行,直接停止。throw  -- 用于抛出异常。throws -- 用在方法签名中,用于声明该方法可能抛出的异常。主方法上也可以使用throws抛出。如果在主方法上使用了throws抛出,就表示在主方法里面可以不用强制性进行异常处理,如果出现了异常,就交给JVM进行默认处理,则此时会导致程序中断执行。5、父类和子类构造函数中使用throws关键字当父类构造函数中使用throws抛出编译时异常,子类构造方法中throws抛出的异常必须大于等于父类throws抛出的异常,并且只能抛出不能捕获。当父类构造函数中使用shrows抛出运行时异常,子类构造方法中可以声明异常也可以不声明异常,如果声明,子类构造函数中抛出的异常要大于或者等于父类中抛出的异常。6、重写方法中使用throws关键字使用继承时,在父类某个方法上声明了异常,子类重写这个方法时,可以不处理异常(重新定义时不设定throws),也可以仅throws父类方法中声明的部分异常,子类throws抛出的异常小于或者等于父类throws抛出的异常。子类重写父类方法时抛出运行时异常,该父类被重写的方法上可以不抛出异常。如果子类重写父类方法时抛出编译异常,此时父类被重写的方法上抛出的异常需大于或者等于子类方法上抛出的异常,或者子类方法中直接捕获异常不抛出,否则子类会编译错误。7、RuntimeException和自定义异常类常见运行时异常:NullPointerException、ArrayIndexOutOfBoundsException、ClassCastException、NumberFormatExceptionException常用API:printStackTrace、getMessage自定义异常类继承Exception类,可以更加精准地捕获和处理异常以呈现更好的用户体验,保证程序更安全和更健壮。8、垃圾回收机制GC是JVM自带的一个线程,用于回收没有任何引用指向的对象。GC由系统自动执行,如果需要立即调用可使用System.gc()。不再使用的的内存没有被及时回收,严重的内存泄漏会因过多的内存占用而导致程序崩溃,因此当对象不再使用时应及时将其引用设置为null。第2章 Java数组1、数组的定义和作用数组是一种数据类型,存储相同数据类型的一组数据。声明一个变量就是在内存中开辟一个空间,声明数组就是在内存中开辟一串连续的空间。动态初始化:初始化时只指明长度,由系统为数组分配初始值:整数型0,浮点型0.0,布尔型false,字符串型空字串,对象型null静态初始化:声明数组的同时对数组元素赋初始值栈内存:存储局部变量堆内存:存储new出来的内容(实体,对象)2、 数组遍历获取数组中的每个元素for循环,循环次数:数组长度-1动态数组长度:数组.length3、 数组中的数组数组中的每个元素也是一个数组嵌套循环遍历4、 数组的排序一般情况下,通过排序过程中数组元素的交换次数来衡量排序算法的优劣常用的排序算法:插入排序、冒泡排序、快速排序等冒泡排序:比较相邻的元素,如果违反最后的顺序准则,则交换5、 数组的最大最小过滤重复数组的最大最小值:定义一个变量存放最大值或最小值,假设数组中的第一个元素为该变量的初始值,该变量跟数组中的其他数进行比较,如果遇到比该值更大或更小就重新赋值,直到比较完整个数组。数组的过滤重复:数组中的每个元素都给一个标记,每个元素都跟其他元素进行比较,如果完全相同则改变原有标记,将没有改变标记的元素重新放入一个新的数组并统计其个数,最终将新数组的数据复制到另一个新的数组中6 、数组的常用类ArraystoString():返回指定数组的内容的字符串sort():按照数字从小到大排序指定数组copyOf():复制指定的数组
发布时间 2021/07/06 15:43:54 最后回复 @Wu 2021/08/09 16:36:10 版块 社区活动
6943 154 1
他的回复:
华为云ID:wangbbbccc第三周笔记第五章 Java面向对象之函数式编程在数学中,函数就是有输入量、输出量的一套计算方案,也就是"拿什么东西做什么事情",相对而言,面向对象过分强调"必须通过对象的形式来做事情",而函数式思想则尽量忽略面向对象的复杂语法——强调做什么,而不是以什么形式做。做什么,而不是怎么做。函数式编程:支持闭包和高阶函数,闭包是一种可以起函数的作用并可以如对象般操作的对象;而高阶函数是可以以另一个函数作为输入值来进行编程。支持惰性计算,这就可以在求值需要表达式的值得时候进行计算,而不是固定在变量时计算。还有就是可以用递归作为控制流程。函数式编程所编程出来的代码相对而言少很多,而且更加简洁明了。接口中有且只有一个抽象方法时才能使用 Lamdba 襄达式代替匿名内部类。这是因为 Lamdba 衷达式是基于函数式接口实现的。所谓函数式接口是指有且仅有一个抽象方法的接口, Lambda 表达式就是 Java 中函数式编程的体现,只有确保接口中有且仅有一个抽象方法, Lambda 表达式才能顺利地推导出所实现的这个接口中的方法。Lambda 表达式的简化复习: Lambda 表达式的省略写法(进一步在 Lambda 表达式的基础上继续简化) 1 .如果 Lambda 表达式的方法体代码只有一行代码,可以省略大括号不写,同时要省略分号!2 .如果 Lambda 衰达式的方法体代码只有一行代码,可以省略大括号不写。此时,如果这行比码是 retun 语句,必须省略 retun 不写,同时也必须省略” ' ; ”不写 3 .参数类型可以省略不写。4 .如果只有一个参数,参数类型可以省略,同时()也可以省略。
发布时间 2021/07/06 15:43:54 最后回复 @Wu 2021/08/09 16:36:10 版块 社区活动
6943 154 1
他的回复:
华为云ID:wangbbbccc第四周笔记第四章 Java面向对象之包和内部类包是用来管理类文件的,存放同名的类可以使用不同的包来完成。包名由小写字母组成,不能以点开头或结尾。导包:import 包名.类名; package必须位于第一行,只允许有一个,其次是import,接着是类语句。常用包:java.lang,java.util,java.io,java.net,java.sql,java.text,java.awt,java.swing创建jar包1.可以直接使用Eclipse导出jar包;2.使用命令创建jar包jar cvxf test.jar MANIFEST.MF bin/ .访问权限Java的类、成员方法和属性有四种访问级别,分别是private,default,protected和public。内部类在一个类中除了可以定义成员变量、方法,还可以定义类,这个类称作内部类。内部类可以访问外部类所有成员,外部类也可以访问内部类的变量和方法。创建内部类对象语法:外部类名.内部类名 变量名 = new  外部类名().new  内部类名();局部内部类定义在方法中的类,也叫方法内部类,有效范围只限于方法内部。局部内部类中的方法和变量只能在创建该局部内部类方法中访问。静态内部类使用static关键字修饰的成员内部类。只能访问外部类的静态成员,通过外部类访问静态内部类成员时可以跳过外部类直接通过内部类访问静态内部类成员。创建静态内部类对象语法:外部类名.静态内部类名 变量名 = new外部类名.静态内部类名();匿名内部类就是没有名称的内部类,在调用包含有接口类型参数的方法时,之间通过匿名内部类形式传入接口类型参数,在匿名内部类中直接完成方法实现。创建匿名内部类对象语法:new 父接口(){ //匿名内部类实现 }