java基础
java编程基础
学海无涯~
这个作者很懒,什么都没留下…
展开
-
一张图带你看看Java编程的世界
本篇文章中的Java知识地图已经上传至我的资源,有需要的可以去主页下载。该资源是Java知识地图,包括Java基础、数据类型及操作、面向对象编程基础、异常处理、继承、封装、多态、数据结构、泛型和内部类、多线程、JDBC等内容,是一张能带你真正全面入门的知识地图。附件有pdf和svg两种格式,有需要的欢迎下载。...原创 2020-11-28 00:20:04 · 118 阅读 · 0 评论 -
12_03.【java】JDBC数据库操作
之前的文章中,介绍了JDBC的概述,包括JDBC操作数据库的步骤、JDBC的作用等;还介绍了JDBC常用的类和接口,本文将以操作MySQL数据库为例,介绍几种常见的JDBC的数据库操作。一、数据库基础数据库是一种存储结构,它允许使用葛总格式输入、处理和检索数据,且不必在每次都需要数据是重新输入数据。例如,当需要某人的电话号码时,需要查看电话薄,按照姓名来查阅,这个电话薄就是一个数据库。当前比较流行的数据库主要有MySQL、Oracle、SQL Server等,它们各有各自的特点,本文主要讲解如何操作M原创 2020-11-27 16:58:37 · 294 阅读 · 0 评论 -
12_02.【Java】JDBC中常用的类和接口
JDBC中常用的类和接口java.sql包中提供了丰富的接口、类,还有一些Enum枚举对象和Exception常见异常用于数据库编程。利用这些类和接口可以放拜年的访问并处理存储在数据库中的数据。本节将介绍一些常用的JDBC接口和类,这些接口和类都在java.sql包中。一、DriverManager类DriverManager类是JDBC的管理层,用来管理数据库中的驱动程序。在使用Java操作数据库之前,必须使用Class类的静态方法forName(String className)加载能够连接数据库原创 2020-11-27 00:34:50 · 705 阅读 · 0 评论 -
12_01.【Java】JDBC概述
使用JDBC技术可以便捷的操作各种主流数据库。大部分应用程序都是使用数据库存储数据的,通过JDBC技术,既可以根据指定条件查询数据库中的数据,又可以对数据库中的数据进行添加、删除、修改等操作。本文主要讲解使用JDBC操作MySQL数据库的知识。一 、Java中的数据库存取技术在Java中,数据库存取技术可分为如下几类:JDBC直接访问数据库JDO技术(Java Data Object)第三方O/R工具,如Hibernate, Mybatis 等JDBC是java访问数据库的基石,JDO,原创 2020-11-27 00:22:59 · 135 阅读 · 0 评论 -
11_8.【java】线程池
线程池中的线程用完之后不会死亡,可以回收,等待下一个对象的使用,提高了性能。JDk5后有了Executors工厂类来产生线程池:public class RunnableDemo4 implements Runnable { private int num = 5; @Override public void run() { // TODO Auto-generated method stub while(true) { if(num>0) { System.out.原创 2020-11-24 22:07:16 · 58 阅读 · 0 评论 -
11_07.【Java】守护线程
守护线程有守护的使命,当别的线程没了的时候,守护线程也跟着没了。public class SellThread implements Runnable { private int num = 25; @Override public synchronized void run() { // TODO Auto-generated method stub while(true) { if(num>0) { try { Thread.sleep原创 2020-11-24 22:06:30 · 74 阅读 · 0 评论 -
11_06.【Java】Lock锁
一、Lock锁JDK5之后有了Lock锁,Lock锁和synchronized锁的主要区别是Lock锁可以在等待很长时间锁还没释放而自动放弃锁,synchronized锁是JVM层实现的,所以系统可以知道锁是什么时候释放的,而Lock锁是代码实现的,所以一般在代码的finally处添加unlock方法:import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class原创 2020-11-24 22:05:51 · 94 阅读 · 1 评论 -
11_05.【Java】线程安全与线程同步
一、线程的运行模式1、线程与进程为了实现在同一个时间运行多个任务,Java引入了多线程的概念。在Java中可以通通过方便、快捷的方式启动多线程模式。多线程常被应用在符合并发机制的程序中,例如网络程序等。人体可以同时进行呼吸、血液循环、思考问题等活动,可以边听歌边聊天…这种机制在Java中被称为并发机制,通过并发机制可以实现多个线程并发执行,这样多线程就应运而生了。以多线程在Windows操作系统中的运行模式为例,Windows操作系统事多任务操作系统,它以进程为单位。每个独立执行的程序都被称为进程,原创 2020-11-24 22:04:38 · 105 阅读 · 0 评论 -
11_04.【Java】线程生命周期与线程操作
一、线程的生命周期线程是具有生命周期的,其中包含5种状态:出生状态、就绪状态、运行状态、暂停状态(包括休眠状态、等待状态和阻塞状态)、死亡状态。1、线程生命周期的5个状态(1)出生状态出生状态就是线程被创建时的状态,是指线程已经被创建但尚未被指定(start()尚未被调用)。我们使用 new 关键字和 Thread 类或其子类建立一个线程对象后,该线程对象就处于出生状态。它保持这个状态直到程序 start() 这个线程。(2)就绪状态当线程对象调用了start()方法之后,该线程就进入就绪状态原创 2020-11-17 17:32:03 · 180 阅读 · 0 评论 -
11_03.【Java】线程的3种实现方式
Java提供了三种实现多线程的方式,分别是继承java.lang.Thread类实现,通过java.lang.Runnable接口实现以及通过Callable和Future创建线程。一、继承Thread类覆写run()方法实现多线程1、继承Thread类覆写run()方法实现多线程的步骤Thread类是java.lang包中的一个类,Thread类的对象用来代表线程,通过继承Thread类创建,启动并执行一个线程的步骤如下:创建一个继承Thread类的子类;覆写Thread类的run()方原创 2020-11-16 20:21:51 · 131 阅读 · 0 评论 -
11_02.【Java】多线程概述
一、线程的运行模式为了实现在同一个时间运行多个任务,Java引入了多线程的概念。在Java中可以通通过方便、快捷的方式启动多线程模式。多线程常被应用在符合并发机制的程序中,例如网络程序等。人体可以同时进行呼吸、血液循环、思考问题等活动,可以边听歌边聊天…这种机制在Java中被称为并发机制,通过并发机制可以实现多个线程并发执行,这样多线程就应运而生了。以多线程在Windows操作系统中的运行模式为例,Windows操作系统事多任务操作系统,它以进程为单位。每个独立执行的程序都被称为进程,比如只在运行的Q原创 2020-11-16 19:53:49 · 138 阅读 · 0 评论 -
11_01.【Java】多线程(Thread类和Runnable接口详述)
一、Thread类1、Thread类概述Thread类是java.lang包中的一个类,继承Object父类,实现Runnable接口:继承关系|--- java.lang.Object |--- java.lang.Thread实现的接口Runnable子类ForkJoinWorkerThreadThread是一个程序中的执行线程。Java虚拟机允许应用程序同时运行多个执行线程。每个线程都有一个优先级,优先执行优先级较高的线程。当某个线程中运行的代码创建一个新 Thr原创 2020-11-12 16:05:21 · 331 阅读 · 0 评论 -
00_01.【Java】嵌套类
一、什么是嵌套类定义在一个类内部的类被称为「嵌套类」,嵌套类分为两种:static声明和非static声明的。非static声明的嵌套类又有一个专门的名字叫做「内部类」(Inner Class)。相对的,内部定义了类的类就被称为「外部类」。1、嵌套类有种类静态嵌套类(Static nested Class):使用static声明的嵌套类称为静态嵌套类,我们直接称为「嵌套类」(Nested Class)。非静态嵌套类(Non-Static nested Class):非static声明的嵌套类是非静原创 2020-11-12 16:01:06 · 253 阅读 · 0 评论 -
10_09【Java】集合中遍历器和比较器的使用-Iterator与Comparator接口
本文是讲Java的集合中比较器和迭代器的使用,还会涉及到其他遍历集合的方法,包括增强for结构和聚合操作。一、遍历集合1、Iterator概述(1)Iterator的子接口及其继承关系Iterator接口的子接口如下:ListIterator, PrimitiveIterator<T,T_CONS>, PrimitiveIterator.OfDouble, PrimitiveIterator.OfInt, PrimitiveIterator.OfLong, XMLEventReader原创 2020-11-10 16:57:55 · 199 阅读 · 0 评论 -
10_08.【Java】Map的重要子接口详述-SortedMap和NavigableMap
一、SortedMap接口1、SortedMap概述SortedMap继承Map接口,是Collection框架的成员之一。SortedMap提供有序的Map实现,是对Map集合中键进行总体排序后的映射。Map的主要实现有HashMap,TreeMap,HashTable,LinkedHashMap。其中的TreeMap实现了SortedMap接口,保证了有序性。默认的排序是根据Key值进行生序排序,也可以重写comparator方法来根据value进行排序。由于乱序的数据对查找不利,例如无法使用原创 2020-11-10 15:22:03 · 268 阅读 · 0 评论 -
10_07【Java】Map集合详述
如果想要存储具有映射关系的数据,那么就需要使用Map集合了。Map集合由Map接口和Map接口的实现类组成。一、Map接口概述1、Map接口是什么?Map是一个以键值对存储的接口,也就是将键映射到值的对象。映射不能包含重复的键,每个键最多可以映射到一个值,并且键不能重复,不能为空。总结来说:Map存储的是键值对,键唯一,一个键对应唯一的一个值。Map接口虽然没有继承Collection接口,但是提供了key到value的映射关系。Interface Map<K,V>K:映射的ke原创 2020-11-10 14:15:01 · 103 阅读 · 0 评论 -
10_06【Java】Set集合详述
一、Set集合概述Set集合由Set方法和Set实现类组成。Set集合中的元素不按特定的方式排序,只是简单的被存放在集合中。Set集合中的元素不能重复。1、Set接口父接口和子接口(1)父接口Set的父接口有两个,分别是:Collection接口:集合基础接口Iterator接口:是一种用于访问集合的方法(2)子接口NavigableSet:NavigableSet扩展了 SortedSet,具有了为给定搜索目标报告最接近匹配项的导航方法。SortedSet:继承于Set保存原创 2020-11-05 19:02:20 · 121 阅读 · 0 评论 -
10_05【Java】List集合详述
集合框架下,常用的集合类包括List、Set和Map ,其中List和Set是继承Collection接口的接口,Map则不是继承自Collection,而是直接在java.util包中的一个接口。Collection接口不能直接被使用,但是提供了操作集合以及集合中元素的方法,继承Collection接口的List和Set接口都可以调用Collection接口中的方法。关于Collection常用方法,请参阅Collection接口详述。List集合包含List 集合方法和List接口的所有实现类。Li原创 2020-11-04 16:23:39 · 105 阅读 · 0 评论 -
10_04.【java】Collection接口详述
Collection接口是java.util包中一个非常重要的接口,除此之外还包括很多其他的接口,详细内容可以查看接口框架 的集合接口部分内容。java.util包中的集合类就像一个装有多个对象的容器,而不同的容器有不同的特性,适用于不同的情况,其中数组和集合的区别就在于:数组的长度是固定的,而集合的长度是可变的;数组既可以存放基本数据类型也可以存对象,集合只能存储对象。常见的集合类包括List集合、Set集合、Map集合等,其中List和Set继承Collection接口。JDK不提供Collect.原创 2020-11-04 13:06:39 · 291 阅读 · 0 评论 -
10_02.【Java】java.util包中的接口框架及对应实现类
集合框架是java学习中最难消化的内容之一,说到集合框架我目前还未找到可以让人一目了然的工具书和材料。所以,唯有一遍遍的看官方API可以帮助我们越来越正确的的认识集合框架及与集合相关的一些接口和实现类。说到学习集合框架,java.util包的学习是重中之重,那java.util包是什么呢?java.util是包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等)。集合原创 2020-11-03 19:06:50 · 254 阅读 · 3 评论 -
10_03.【Java】集合框架
一、集合框架1、集合框架概述集合框架是一个统一的构架,用于表示和操纵集合。所有集合框架都包含下面几项:接口:即表示集合的抽象数据类型,ADT。接口使得在使用集合时不需要关注集合的实现细节。在面向对象语言中,接口一般会形成层次结构。实现类(具体类):集合接口的具体实现。实际上它们是可复用的数据结构。算法:在实现集合接口的对象上进行的各种有意义的计算,如搜索、排序。实际上,算法是可复用的功能单元。 除了Java集合框架以外,其他有名的集合框架有C++ STL和Smalltalk语言的集合层原创 2020-10-31 00:08:04 · 183 阅读 · 2 评论 -
10_01.【Java】泛型
泛型允许在定义类、接口、方法时声明类型形参,通过类型形参在创建对象、调用方法时指定参数的数据类型。以集合为例,在没有泛型之前,集合中的元素被当作Object类型处理,当程序从集合中取出元素时,如果对元素进行强制类型转换,容引起ClassCastException异常,而使用泛型的集合可以记住集合中元素的类型,如果试图向集合中添加元素,而要添加的元素与已有元素的数据类型不一致,编译器就会报错,从而使得程序更加健壮。java.util包中三个重要的接口及其特点:List(列表)、Set(保证集合中元素唯一).原创 2020-10-30 15:49:41 · 198 阅读 · 0 评论 -
09_06.【Java】枚举类型
枚举是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类多了一些特殊的约束,但是这些约束的存在也使得枚举类型具有简洁、安全以及便捷的优良特性。枚举是一系列具有名称的常量的集合,比如:一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向的东南西北,性别的男女等。一、枚举类型概述传统常量在实际开发中习惯性的被定义在接口中。而Java的枚举类型也常被用于设置常量。枚举类型是一种数据类型,被视为一系列具有名称的常量的集合,因此被赋予了在程序编译时检查数据类型的功能,使得原创 2020-10-24 22:49:06 · 157 阅读 · 0 评论 -
09_05. 【Java】日期和时间及其格式化
一、创建日期和时间对象(Date类)1、初始化Date对象Java提供了Date类来操作日期和时间,Date类也封装在java.util包中。我们使用Date类时,需要先创建Date对象,Date类提供了两个构造函数来实例化Date对象:编号构造方法说明功能描述1Date()使用当前日期和时间初始化对象分配Date对象并初始化此对象,使用当前日期和时间来初始化对象,精准到毫秒。2Date(long date)使用标准基准时间初始化对象分配Date对象并初始.原创 2020-10-22 19:30:42 · 473 阅读 · 0 评论 -
09_04. 【Java】Random类
一、随机数生成器概述Java中的Random类主要用来生成随机数,Random类中实现的随机算法是伪随机(也称为有规则的随机)。在进行随机生成时,随机生成算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生不同的随机数字。种子数决定了生成数,相同种子数的Random对象,相同次数生成的随机数字是完全相同的。因此,在生成多个随机数时,需要特别注意特们的seed是否相同。Java的Random类和Scanner类一样都封装在在java.util中,单独使用的情况非常少,通常搭配.原创 2020-10-22 01:47:48 · 175 阅读 · 0 评论 -
09_03.【Java】Scanner类
一、Scanner概述和Python的input()函数类似,Java提供了Scanner类供用户从控制台输入。我们使用import java.util.Scanner导入Scanner类,就可以实现获取用户输入的目的了。1、导入Scanner类import java.util.Scanner; 2、创建 Scanner 对象下面是创建 Scanner 对象的基本语法:Scanner sc = new Scanner(System.in);3、控制台接收输入String str1 = .原创 2020-10-21 17:12:40 · 127 阅读 · 0 评论 -
09_02. 【Java】Math类
Java的类包提供了一些常用类方便开发人员使用,例如我们之前讲过的:将基本数据类型封装起来的包装类 。接下来我们要学习解决常见数学问题的Math类。一、Math类概述开发人员可以使用运算符完成一些简单的数学运算,但是如果涉及到复杂运算,我们就需要用到Java提供的Math类,Math类中包含许多数学方法,比如最大值、最小值、绝对值、三角函数、指数运算、对数运算等等。除此之外,和Number包装类的Integer类一样,Math类也提供一些数字常量,比如PI、E等。1、调用Math类的方法Math类原创 2020-10-21 15:33:12 · 216 阅读 · 0 评论 -
09_01.【Java】包装类
Java的类包提供了一些常用类供开发人员使用,例如将基本数据类型封装起来的包装类,解决常见数学问题的Math类,生成随机数的Random类,以及处理日期、时间的相关类等。一、包装类概述Java是一种面向对象的编程语言,为了能把基本数据类型当作对象处理,Java设计了包装类的概念。包装类将Java的8个基本数据类型包装成成相应的类,这样就可以通过对象来调用各自的包装类中的方法。1、Java基本数据类型对应的包装类一般我们要使用数字的时候,通常会使用内置数据类型,比如byte、int、long、dou原创 2020-10-21 00:46:12 · 126 阅读 · 0 评论 -
08. 【Java】异常处理
异常处理一、异常处理机制1、异常处理机制的作用2、异常处理机制的工作原理3、异常产生原用二、顶层异常类1、Throwable2、Throwable子接口(1)Exception(2)Error三、Java内置异常类1、常见的非检查异常2、常见的检查异常3、通用异常四、异常方法五、异常的处理1、处理原则(1)检查异常(2)非检查异常2、捕捉处理异常(1)try-catch代码1)捕获异常2)多重捕获(2)finally代码块(3)捕获异常注意事项:3、在方法中抛出异常(1)throws(2)throw(3)t原创 2020-10-19 18:41:47 · 273 阅读 · 0 评论 -
07_03.面向对象编程核心技术_访问控制和内部类
访问控制主要包括三方面内容:通过使用访问控制符对类、属性、方法进行访问权限管理;使用final关键字对创建后就不想被修改的类、属性、方法进行修饰;通过Java类包实现类的分门别类管理,避免相同类名冲突。内部类就是定义在类的内部的类,包括成员内部类和匿名内部类,内部类依赖于外部类存在,匿名内部类主要用于那些只想使用一次的类,一般以接口或者抽象类的形式进行定义。访问控制和内部类是对类的三大特征、抽象类和接口等内容的进一步补充和延伸,学习本部分知识之前最好能够复习一下其他面向对象编程的核心知识,方便我们对之前原创 2020-10-19 01:39:37 · 122 阅读 · 0 评论 -
07_02.【java】面向对象编程核心技术_抽象类与接口
在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。一、抽象类与抽象方法1、 抽象类抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。在Java语言中使用abstract class来定义抽象类:[权限修饰符] abstract class 类名{ 类体}2、抽象方法如果你想设计这样一个类,该类包含一个特别的成员方法原创 2020-10-15 13:50:23 · 433 阅读 · 0 评论 -
07_01.【Java】面向对象编程核心技术-类的三大特征(封装、继承、多态)
类的三大特征一、封装**封装的载体是类,且对象的属性和行为被封装在这个类中。**在面向对象程序设计方法中,封装(英语:Encapsulation)是指类将对象的属性和行为隐藏起来,对客户隐藏其实现细节的思想。封装可以被认为是一个程序的保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。如果想要访问该类的代码和数据,必须通过严格的接口进行。合适的封装可以可以增强代码的易维护性和安全性。实例1:"被封装的厨师"为顾客做一道香辣肉丝顾客到一家餐厅去吃饭,点了一盘香辣肉丝,觉得很好吃,顾客就像知道厨原创 2020-10-13 23:26:15 · 959 阅读 · 0 评论 -
06.【Java】面向对象编程基础
一、类与对象概述:1、对象对象:对象是一个抽象概念,英文称作“Object”,表示任意存在的事物,是类的一个实例,有状态和行为。例如,一个人就是一个对象,他的状态有:性别、年龄、国籍等;行为有:走路、跑步、吃饭等。状态描述的是对象的“静态”属性,行为描述的对象的“动态”属性。2、类类:类是封装对象的属性和行为的载体,可以反过来说具有相同属性和行为的一些对象实体被称为类。类可以看成是创建 Java 对象的模板,它描述一类对象的行为和状态。在Java语言中,类包括对象的属性和方法。类中对象的属性是以原创 2020-10-13 23:13:28 · 1154 阅读 · 0 评论 -
05.【Java】字符串(String与StringBuffer)
在Java的基础数据类型中有字符类型char可以存储字符,但是char只能表示单个字符,要想存储一串字符,就需要用到字符串类型String类型。一、String类1、字符串的特点字符串是常量,创建后不会被修改字符串可以显示任意文字的信息在Java中,单引号扩起来的叫做字符,双引号扩起来的叫做字符串2、声明字符串字符串是常量,他可以显示任何形式的文字信息,字符串在创建之后就不能修改,在Java单引号中的内容表示字符,双引号中的内容则表示字符串。“我是字符串”,“1234567原创 2020-10-13 23:04:43 · 672 阅读 · 0 评论 -
04. 【Java】数组(Array)
数组是最常见的一种数据结构,分为一维数组、二维数组以及多维数组,是把相同数据类型的元素,用一个标识符封装到一起的基本数据序列或者对象序列。数组的主要内容如下:数组是具有相同数据类型的一组数据的集合。数组中的每个元素具有相同的数据类型。在Java中将数组看作一个对象,虽然基本数据类型不是对象,但是由基本数据类型数据组成的数组则是对象。在程序设计中利用数组存储和处理数据可以起到很好的数据管理作用。变量和数组的关系一、一维数组一维数组是一组相同数据类型的线性集合。例如学生排成一列队伍,这个队伍就原创 2020-10-12 17:15:40 · 677 阅读 · 0 评论 -
03. 【Java】流程控制
一、程序结构顺序结构、选择结构、循环结构是结构化程序设计的3种基本结构,是各种复杂程序的基本构造单元:上图中的三种结构分别是顺序结构、选择结构、循环结构。循环结构是指编写完毕的语句按照编写顺序依次被执行;选择结构是指根据数据和中间结果的不同选择执行的语句,选择结构主要由条件语句(也叫盘算语句或者分支语句)组成;循环结构是指在一定的条件下反复执行某段程序的流程结构,其中反复执行的语句称为循环体,而决定循环是否终止的判断条件称为循环条件。二、条件语句条件判断语句会根据不同的判断条件执行不同的代码,在j原创 2020-10-11 19:26:02 · 410 阅读 · 2 评论 -
02. 【Java】语言编程基础
一、代码注释与规范单行注释“//”int age //声明int变量,用于保存整型信息多行注释“/* */”/*注释内容1注释内容2*/文档注释“/** */”/**当文档注释出现在声明之前时,会被javadoc文档工具读取为javadoc文档内容。但是初学很少使用到文档注释。*/二、变量与常量1、变量与常量的定义:变量:值能够被改变的量称为变量常量:值不能够被改变的量称为常量2、标识符与关键字标识符java规定的标识符由任意顺序的字母、下原创 2020-10-11 19:17:40 · 482 阅读 · 0 评论 -
01. 【Java】mac的java环境配置
在mac电脑上开发java需要安装java并配置环境变量。 mac和 windows 的系统配置环境变量的方式不同,这里我只演示mac安装最新版本的java的方法及需要注意的地方。1、首先检查自己的电脑是否已经安装好了jdk我们通过终端来测试:在终端键入 java -version如果安装过jdk,就会显示java版本信息:如果没有安装过jdk,会提示需要安装jdk:此时,我们点击“好”按钮确认2、下载并安装jdk:我们oracle官网下载,我安装软件一般选择最新版,目前最新的是j原创 2020-09-15 16:07:55 · 216 阅读 · 0 评论