
Java基础
文章平均质量分 82
thinking code
行有不得,反求诸己
展开
-
MySQL数据库与JDBC编程(四)
Java 7的RowSet RowSet接口继承了ResultSet接口,RowSet接口下包含JdbcRowSet、CachedRowSet、FilterRowSet、JoinRowSet和WebRowSet常用子接口。除了JdbcRowSet需要保持与数据库的连接之外,其余4个子接口都是离线的RowSet,无须保持与数据库的连接。与ResultSet相比,RowSet默认是可滚动、可更新、可序列化的结果集,而且作为JavaBean使用,因此能方便地在网络上传输,用于同步两端的数据。对于离线Ro原创 2020-06-29 18:56:26 · 309 阅读 · 0 评论 -
MySQL数据库与JDBC编程(三)
JDBC常用接口和类简介JDBC提供了独立于数据库的同一API,用以执行SQL命令。JDBC API由以下常用的接口和类组成。DriverManager用于管理JDBC驱动的服务类。程序中使用该类的主要功能是获取Connection对象,该类包含如下方法该方法获得url对应数据库的连接 public static Connection getConnection(String url, String user, String password) throws SQLExcep原创 2020-06-28 14:13:10 · 404 阅读 · 0 评论 -
MySQL数据库与JDBC编程(二)
多表连接查询多表连接查询有两种规范,较早的SQL 92规范支持如下几种多表连接查询。等值连接非等值连接外连接广义笛卡尔积SQL 99范围提供了可读性更好的多表连接语法,并提供了更多类型的连接查询。SQL 99支持如下几种多表连接查询交叉连接自然连接使用using子句的连接使用on子句的连接全外连接或者左、右连接SQL 92的连接查询SQL 92的多表连接语法比较简洁,这种语法把多个数据表都放在from之后,多个表之间以逗号隔开;连接条件放在where之后,与查询条件之间用a原创 2020-06-22 21:13:41 · 315 阅读 · 0 评论 -
MySQL数据库与JDBC编程(一)
JDBC基础JDBC的全称是Java Database Connectivity,即数据库连接,它是一种可以执行SQL语句的JavaAPI。程序可通过JDBC API连接到关系数据库,并使用结构化查询语言(SQL,数据库标准的查询语言)来完成对数据库的查询、更新。JDBC简介通过使用JDBC,就可以使用同一种API访问不同的数据库系统。JDBC驱动示意图正是通过JDBC驱动的转换,才使得使用相同JDBC API编写的程序,在不同的数据库系统上运行良好。Sun提供的JDBC可以完成以下三个基本工作原创 2020-06-17 20:37:34 · 738 阅读 · 1 评论 -
异常处理
概念异常机制可以使程序中的异常处理代码和正常业务代码分离,保证程序代码更加优雅,并可以提高程序的健壮性。Java将异常分为两种,Checked异常和Runtime异常,Java认为Checked异常都是可以在编译阶段被处理的异常,所以它强制程序处理所有的Checked异常;而Runtime异常则无须处理。异常处理机制Java的异常处理机制可以让程序具有极好的容错性,让程序更加健壮。当程序运行出现意外情形时额,系统会自动生成一个Exception对象来通知程序,从而实现将“业务功能实现代码”和“错误处原创 2020-06-15 17:28:04 · 457 阅读 · 0 评论 -
操作集合的工具类Collections
概述Java提供了一个操作Set、List和Map等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了将集合对象设置为不可变、对集合对象实现同步控制等方法。排序操作Collections提供了如下几个方法用于对List集合元素进行排序。...原创 2020-06-14 19:14:03 · 293 阅读 · 0 评论 -
Map
基本概念Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另外一组值用于保存Map里的value,key和value都可以是任何引用类型的数据。Map的key不允许重复,即同一个Map对象的任何两个key通过equals方法比较总是返回falseMap接口中定义了如下常用的方法删除该Map对象中的所有key-value对void clear();查询Map中是否包含指定的key,如果包含则返回trueboolean containsKey(Obj原创 2020-06-13 18:30:34 · 244 阅读 · 0 评论 -
List集合
List集合代表一个元素有序、可重复的集合,集合中每个元素都有其对应的顺序索引。List接口和ListIterator接口List作为Collection接口的子接口,当然可以使用Collection接口里的全部方法。而且由于List是有序的集合,因此List集合里增加了一些根据索引来操作集合元素的方法。将元素element插入到List集合的index处void add(int index, E element);将集合c所包含的所有元素都插入到List集合的index处boolean ad原创 2020-06-12 17:06:03 · 200 阅读 · 0 评论 -
Set集合
Set集合Set集合与Collection基本上完全一样,它没有提供任何额外的方法。实际上Set就是Collection,只是行为略有不同(Set不允许包含重复元素)。Set集合不允许包含相同的元素,如果试图把两个相同的元素加入同一个Set集合中,则添加操作失败,add方法返回false,且新元素不会被加入。Set判断两个对象相同不是使用==运算符,而是根据equals方法。public class SetTest { public static void main(String[] ar原创 2020-06-11 16:32:18 · 15020 阅读 · 1 评论 -
Java集合
Java集合概述为了保存数量不确定的数据,以及保存具有映射关系的数据(也被称为关联数组),Java提供了集合类。集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。集合类和数组不一样,数组元素既可以是基本类型的值,也可以是对象(实际上保存的是对象的引用变量);而集合里只能保存对象。Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。三种集合示意图我们可以把Java的所有集合分为原创 2020-06-11 09:25:33 · 157 阅读 · 0 评论 -
国际化与格式化
国际化国际化是指应用程序运行时,可根据客户端请求来自的国家/地区、语言的不同而显示不同的界面。例如,如果请求来自于中文操作系统的客户端,则应用程序中的各种提示信息错误和帮助等都使用中文文字;如果客户端使用英文操作系统,则应用程序能自动识别,并做出英文的响应。国际化的英文单词是Internationalization,因为这个单词太长了,有时也简称I18N,其中I是这个单词的第一个字母,18表示中间省略的字母个数,而N代表这个单词的最后一个字母。一个国际化支持很好的应用,在不同的区域使用时,会呈现出原创 2020-06-08 11:54:43 · 263 阅读 · 0 评论 -
正则表达式
正则表达式正则表达式是一个强大的字符串处理工具,可以对字符串进行查找、提取、分割、替换等操作。String类里也提供了如下几个特殊的方法。判断该字符串是否匹配指定的正则表达式 public boolean matches(String regex) { return Pattern.matches(regex, this); }将该字符串中所有匹配regex的子串替换成replacement public String replaceAll(String re原创 2020-06-04 16:22:41 · 897 阅读 · 0 评论 -
常用类
Object类Object类是所有类、数组、枚举类的父类,也就是说,Java允许把任何类型的对象赋给Object类型的变量。当定义一个类时没有使用extends关键字为它显式指定父类,则该类默认继承Object父类。hashCode方法public native int hashCode();返回该对象的hashCode值。在默认情况下,Object类的hashCode()方法根据该对象的地址来计算(即与System.identityHashCode(Object x)方法的计算结果相同)。但很多原创 2020-06-03 15:53:26 · 389 阅读 · 0 评论 -
与运行环境交互
运行Java程序的参数Java程序的入口——main方法的方法签名解析public static void main(String[] args) {}public修饰符:Java类由JVM调用,为了让JVM可以自由调用这个main方法,所以使用public修饰符把这个方法暴露出来。static修饰符:JVM调用这个主方法时,不会先创建该主类的对象,然后通过对象来调用该主方法。JVM直接通过该类来调用主方法,因此使用static修饰该主方法。void返回值:因为主方法被JVM调用,该方法的返回原创 2020-05-30 15:47:49 · 331 阅读 · 0 评论 -
使用JAR文件
什么是JAR文件JAR文件的全称是Java Archive File,意思就是Java档案文件。通常JAR文件是一种压缩文件,与我们常见的ZIP压缩文件兼容,通常也被称为JAR包。JAR文件与ZIP文件的区别就是在JAR文件中默认包含了一个名为META-INF/MANIFEST.MF的清单文件,这个清单文件是在生成JAR文件时由系统自动创建的。如下是rt.jar包的结构当开发了一个应用程序后,这个应用程序包含了很多类,如果需要把这个应用程序提供给别人使用,通常会将这些类文件打包成一个JAR文件,原创 2020-05-30 10:21:53 · 887 阅读 · 0 评论 -
修饰符的适用范围
Java修饰符适用范围总表strictfpstrictfp关键字的含义是精确浮点的意思。在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字,Java的编译器和运行时环境在浮点运算上不一定令人满意。一旦使用了strictfp来修饰类、接口或者方法时,那么在所修饰的范围内Java的编译器和运行时环境会完全依照浮点规范IEEE-754来执行。因此,如果想让浮点运算更加精确,就可以使用strictfp关键字来修饰类、接口和方法。nativenative关键字主要用于修饰一个方法,使用nat原创 2020-05-28 20:04:44 · 590 阅读 · 0 评论 -
对象与垃圾回收
垃圾回收机制特征垃圾回收机制只负责回收堆内存中的对象,不会回收任何物理资源(例如数据库连接、网络IO等资源)。所以诸如数据库连接都是我们调用close方法去释放资源的程序无法精确控制垃圾回收的运行,垃圾回收会在合适的时候进行。当对象永久性地失去引用后,系统就会在合适的时候回收它所占的内存。也就是说用java是没法精确控制垃圾回收的在垃圾回收机制回收任何对象之前,总会先调用它的finalize()方法,该方法可能使该对象重新复活(让一个引用变量重新引用该对象),从而导致垃圾回收机制取消回收。对象在原创 2020-05-28 19:01:10 · 668 阅读 · 0 评论 -
关于不可变类,你真的了解了吗
提到不可变类,大家的第一反应一定就是String类了,没错,String类就是不可变类,可大家真的理解了不可变类意义了吗,还是说final class String 就代表了不可变类了?非也,今天我们就一起来看看何为不可变类概念不可变类的意思是创建该类的实例后,该实例的Field是不可改变的。也就是说是该类的实例Field不可变才说明该类是不可变类,并不是说final修饰的类就是不可变类,final修饰的类只保证了该类不可被继承而已java提供的8个包装类和java.lang.String类都是.原创 2020-05-25 15:20:07 · 400 阅读 · 0 评论 -
java访问控制符详解
使用访问控制符java提供了3个访问控制符:private、protected和public,分别代表3个访问控制级别,另外还有一个不加任何访问控制符的访问控制级别,提供了4个访问控制级别。访问权限由小到大:private——>default——>protected——>public注意没有default这个关键字,不写则默认代表此访问权限private(当前类访问权限)如果类里的一个成员(包括Field、方法和构造器等)使用private访问控制符来修饰,则这个成员只能在当前类原创 2020-05-21 20:54:41 · 1434 阅读 · 0 评论 -
【Java基础】进制转换
前言众所周知,计算机存储数据和运算都要使用二进制表示,如010111001,1和0其实也是一种表示方式,用来表示计算机的高电平和低电平但是在java中如果数据都用0101011100这种来表示显然不直观,所以就引出了我们今天的主题,进制转换,那么计算机中有哪几种进制表示呢?答案是最基本的二进制和八进制、十进制、十六进制何为二进制?即逢二进一,所以二进制的表示全是有0、1组成,其余进制同理那么为何是八进制、十六进制呢?因为3位二进制数即可表示1位八进制数,4位二进制数即可表示1位十六进制数,纯粹是原创 2020-05-16 16:53:15 · 1947 阅读 · 1 评论 -
【Java基础】注解
何为注解从jdk5开始,java增加了对元数据的支持,也就是Annotation(注解)关于注解,其实就是代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。通过使用Annotation,程序开发人员可以在不改变原有逻辑的情况下,在源文件中嵌入一下补充的信息。代码分析工具、开发工具和部署工具可以通过这些补充信息进行验证或者进行部署。Annotation提供了一种为程序元素设置元数据(元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about原创 2020-05-14 21:05:59 · 190 阅读 · 0 评论 -
【Java基础】最通俗易懂的枚举
Java的枚举本质上是int值因为没有可以访问的构造器,枚举类型是真正的final如果一个参数是枚举类型,则可以确保该参数是该枚举类型那么什么时候应该使用枚举呢?每当需要一组固定常量的时候原创 2017-10-12 10:05:26 · 561 阅读 · 1 评论 -
【Java基础】反射
首先来看一下什么是反射?Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制。反射被视为动态语言的关键通俗点就是反射能操作一个类所拥有的任何东西,类的字段、方法、构造器、注解等。那么...原创 2020-05-05 17:43:43 · 252 阅读 · 0 评论 -
【Java基础】类加载机制
首先来看看相关概念系统可能在第一次使用某个类时加载该类,也可能采用预加载机制来加载某个类。当我们调用Java命令运行某个Java程序时,该命令将会启动一个Java虚拟机进程,不管该Java程序有多么复杂,该程序启动了多少个线程,它们都处于该Java虚拟机进程里。同一个JVM的所有线程、所有变量都处于同一个进程里,它们都使用该JVM进程的内存区。当程序主动使用某个类时,如果该类还未被加载到内存...原创 2020-05-03 10:04:00 · 257 阅读 · 0 评论 -
【Java基础】一看就懂的jdk环境变量配置
前言先解释下几个专用术语DOS:Disk Operating System,磁盘操作系统JRE:Java Runtime Environment,Java运行环境JDK:Java Development Kit,Java 语言的软件开发工具包JVM: Java Virtual Machine, Java虚拟机大家都知道java程序是运行在java虚拟机上的,所以JVM是必不可少的,J...原创 2020-05-01 13:56:42 · 432 阅读 · 0 评论 -
【Java基础】泛型
什么是泛型?专业术语就不描述了,直接百度百科一下泛型有什么用呢在jdk1.5之前是没有泛型的,这时的List是这样的public class Demo1 { public static void main(String[] args) { List list = new ArrayList(); list .add(new Animal());...原创 2020-04-25 10:26:35 · 219 阅读 · 0 评论