自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 重学Java(046)——Java基础知识(Lambda表达式)

Lambda表达式:一、函数式编程思想概述二、冗余的Runnable代码三一、函数式编程思想概述1.概述在数学中,函数就是有输入量、输出量的一套计算方案,也就是“拿什么东西做什么事情”。相对而言,面向对象过分强调“必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法——强调做什么,而不是以什么形式做。2.与面向对象编程思想的区别在面向对象的思想中我们做一件事情,就要找一个能解决这个事情的对象,调用对象的方法,完成这件事情;而函数式编程思想中,只要能获取到结果,谁去做的,怎么做的都

2020-07-25 11:37:10 1181

原创 重学Java(045)——Java基础知识(线程通信、等待唤醒机制、线程池)

学习内容:一、线程通信二、等待唤醒机制三级目录一、线程通信1,概述线程间通信的概念就是:多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。比如有两个线程:线程A用来生产包子,线程B用来吃包子,包子可以理解为同一资源。线程A与线程B处理的动作,一个是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题。2.处理线程通信的原因多个线程并发执行时, 在默认情况下CPU是随机切换线程的,当我们需要多个线程来共同完成一件任务,并且我们希望他们有规律的执行, 那么多线程之间需要一些协调通

2020-07-23 13:57:46 1180

原创 重学Java(044)——Java基础知识(线程安全、线程的生命周期)

线程安全内容:一、线程安全概述二级目录三级目录一、线程安全概述如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。但在多线程的情况中往往会出现线程不安全的问题。我们通过一个电影院卖票的案例来模拟线程安全的情况。案例描述:电影院卖100张票,三个售票口同时卖。先定义一个Ticket类,模拟票:public class RunnableImpl implements Runnable {

2020-07-22 13:47:54 1186

原创 重学Java(043)——Java基础知识(线程)

学习内容:一、并发与并行二、进程与线程三、创建多线程程序的第一种方式一、并发与并行并发:指两个或多个事件在同一个时间段内发生,不同时,一个发生完另一个再发生。在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多个程序同时运行,这在单 CPU 系统中,每一时刻只能有一道程序执行,即微观上这些程序是分时的交替运行,只不过是给人的感觉是同时运行,那是因为分时交替运行的时间是非常短的。并行:指两个或多个事件在同一时刻发生,同时发生。而在多个 CPU 系统中,则这些可以并发执行的程序便可以

2020-07-21 16:35:59 156

原创 重学Java(042)——Java基础知识(异常)

异常的知识:一、概述二、异常的产生过程解析三、抛出异常throw四、Objects非空判断五、声明异常throws六、捕获异常try…catch七、finally 代码块八、异常的注意事项一、概述1.异常的概念异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。2.异常的体系异常机制其实是帮助我们找到程序中的问题,异常的根类是 java

2020-07-18 16:50:08 232

原创 重学Java(041)——Java基础知识(泛型)

学习内容:一、泛型二、定义和使用含有泛型的类三、定义和使用含有泛型的方法一、泛型一、概述泛型:是一种未知的数据类型,当我们不知道使用什么数据类型的时候,可以使用泛型泛型也可以看成是一个变量,用来接收数据类型E e:Element 元素T t:Type 类型ArrayList集合在定义的时候,不知道集合中都会存储什么类型的数据,所以类型使用泛型。二、使用泛型的好处将运行时期的ClassCastException,转移到了编译时期变成了编译失败。避免了类型强转的麻烦。下面用一段代码

2020-07-17 12:34:12 140

原创 重学Java(040)——Java基础知识(Collection接口、Iterator接口、增强for循环)

Java中常用接口:一、Collection接口二、Iterator接口三、一、Collection接口一、概述单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是java.util.List和java.util.Set。其中,List的特点是元素有序、元素可重复。Set的特点是元素无序,而且不可重复。List接口的主要实现类有java.util.ArrayList和java.util.LinkedList,Set接口的主要实现类有java.util.HashSet和ja

2020-07-15 11:47:47 126

原创 重学Java(039)——Java基础知识(拿Integer类举例装箱与拆箱、基本类型与字符串类型之间的相互转换)

学习内容:一、装箱与拆箱二、自动装箱与拆箱三、基本类型与字符串类型之间的相互转换一、装箱与拆箱一、基本概念装箱:把基本类型的数据,包装到包装类当中(基本类型的的数据——>包装类)构造方法:Integer(int Value) 构造一个新分配的Integer对象,它表示指定的int值Integer(String s) 构造一个新分配的Integer对象,它表示String参数所指示的注意:传递的字符串,必须是基本类型的字符串,否则会抛出异常 “100” 正确 “a” 抛异常

2020-07-14 20:29:45 126

原创 重学Java(038)——Java基础知识(String类)

Java常用的类:一、String类二、StringBuilder类的append()方法三、StringBuilder和String的相互转换一、String类一、概述String类的对象内容不可以改变(常量,字符串底层上是一个被final修饰的数组,不能改变。),所以每当进行字符串拼接时,总是会在内存中创建一个新的对象。java.lang.StringBuilder类:字符串缓冲区,可以提高字符串的效率。(可以做到修改字符串)构造方法:StringBuilder() 构造一个不带任何

2020-07-14 15:25:52 101

原创 重学Java(037)——Java基础知识(Calendar类及其常用成员方法、System类)

Java中常用的类:一、Calendar类二、Calendar类的常用成员方法三一、Calendar类一、概述java.util.Calendar类是日历类。Calendar类是一个抽象类,里边提供了很多操作日历字段的方法(YEAR、MONTH、DAY_OF_MONTH、HOUR)。该类无法直接创建对象使用,里边有一个静态方法叫做getInstance(),该方法返回了Calendar类的子类对象:static Calendar getInstance() ,使用默认时区和语言环境获得一个日历。

2020-07-13 20:03:51 176

原创 重学Java(036)——Java基础知识(Date类、DateFormat类、一个小练习)

Java中常用的类:一、Date类二、DateFormat类三、一个小练习一、Date类一、概述java.util.Date:表示日期和时间的类,类 Date 表示特定的瞬间,精确到毫秒。毫秒值的作用:可以对时间和日期进行计算例如:2019-01-03 到 2020-08-02 中间一共有多少天,可以日期转换为毫秒进行计算,计算完毕,再把毫秒转换为日期。把日期转换为毫秒:当前的日期:2020-07-13时间原点(0毫秒):1970 年 1 月 1 日 00:00:00(英国格林

2020-07-13 15:57:05 252

原创 Java基础练习01

Java基础练习01一、练习一二、练习二三级目录一、练习一题目要求:交换两个整数a,b的值,不允许使用临时变量。思路:用异或运算符(^),一个整数a在异或另一个整数b两次以后所得的值还是整数a。代码实现:public class Exchange { public static void main(String[] args) { int a = 3; int b = 5; System.out.println("交换前,a = " + a

2020-07-07 20:14:09 122

原创 重学Java(035)——Java基础知识(类作为成员变量、接口作为成员变量、接口作为方法参数和返回值类型)

学习内容:三种引用类型用法一、类作为成员变量二、接口作为成员变量三、接口作为方法参数和返回值类型实际的开发中,引用类型的使用非常重要,也是非常普遍的。我们可以在理解基本类型的使用方式基础上,进一步去掌握引用类型的使用方式。基本类型可以作为成员变量、作为方法的参数、作为方法的返回值,那么当然引用类型也是可以的。一、类作为成员变量首先我们创建一个英雄Hero对象,使用 String 类型表示姓名、int类型表示年龄。此时, String 本身就是引用类型,由于使用的方式类似常量,所以往往忽略了它是引用类型

2020-05-22 10:41:58 406

原创 重学Java(034)—— Java基础知识(四种权限修饰符、成员内部类、局部内部类、匿名内部类)

学习内容:一、四种权限修饰符二级目录三级目录一、四种权限修饰符在Java中提供了四种访问权限,使用不同的访问权限修饰符修饰时,被修饰的内容会有不同的访问权限。四种访问权限修饰符如下:publicprotected(default)private二级目录三级目录...

2020-05-22 08:22:25 284

原创 重学Java(033)—— Java基础知识(final关键字的学习)

学习内容:一、final关键字基本概念二、final关键字修饰类三、final关键字修饰成员方法四、final关键字修饰局部变量五、final关键字用于修饰成员变量一、final关键字基本概念final关键字代表最终的、不可改变的。在继承的关系当中:子类可以在父类的基础上改写父类内容,比如,方法的覆盖重写。但是我们并不能随意的继承API中提供的类,改写其内容。因此,Java提供了 final 关键字,用于修饰不可改变内容。final关键字常用四种用法:可以用来修饰一个类可以用来修饰一个方法可

2020-05-21 11:06:55 173

原创 重学Java(032)—— Java基础知识(接口多态的综合案例)

这是一个运用到接口、多态、对象的向上转型和向下转型的例子。我们要做的是描述一个笔记本类,实现笔记本使用USB鼠标和USB键盘。分析:USB接口,包含开启功能、关闭功能笔记本类,包含运行功能、关机功能、使用USB设备功能鼠标类,要实现USB接口,并具备点击的方法键盘类,要实现USB接口,具备敲击的方法下面开始实现。首先定义一个接口USB,接口主要用于打开设备和关闭设备:public interface USB { public abstract void open(); //

2020-05-21 08:30:07 508

原创 重学Java(031)—— Java基础知识(对象的向上转型、对象的向下转型、instanceof关键字)

学习内容:一、对象的向上转型二、对象的向下转型三、instanceof关键字一、对象的向上转型对象的向上转型,其实就是多态的写法:格式:父类名称 对象名 = new 子类名称();可以把它看作是右侧创建一个子类对象,把它当作父类来看待使用。要注意的是:**向上转型一定是安全的。**从小范围转向大范围,这是一定没有问题的。类似于:double num = 100; // 正确,int —> double,自动类型转换下面通过代码简单示例:首先创建一个父类Animal,定义一个抽象

2020-05-20 17:57:20 235

原创 如何在IntelliJ IDEA中创建一个Java Web项目

1、打开IntelliJ IDEA依次点击左上角File—>New—>Project,然后在出现的界面中左侧选择Java Enterprise,右侧选择Web Application点击下方Next,输入自己想要的项目名称,然后点击下方发Finish完成。创建好的项目结构如下图所示:2、下面进行项目配置在web/WEB-INF下创建两个文件夹classes(用来存放classes文件)和lib(用来存放第三方依赖jar包),完成后项目结构如下图所示:3.配置文件夹路径依次点

2020-05-18 22:55:38 796

原创 手把手教你Windows下MySQL数据库的下载和配置

一、下载MySQL1.网盘下载链接:https://pan.baidu.com/s/1GAA44Cz6Il-zUQOalXP-Xw提取码:4f28需要解压。2.官网下载首先进入官网https://www.mysql.com/,点击上方的DOWNLOADS:点击DOWNLOADS后跳转到下图所示的页面,然后点击 “MySQL Community (GPL) Downloads »”:然后跳转到如下图所示的界面,我们点击左边的MySQL Community Server:然后出现下图所示的

2020-05-18 21:12:16 373

原创 重学Java(030)—— Java基础知识(多态、多态中的成员变量、多态中的成员方法)

学习内容:一、多态二、多态中的成员变量三、多态中的成员方法一、多态1.概述多态是继封装、继承之后,面向对象的第三大特性。我们知道:同一行为,通过不同的事物,可以体现出来的不同的形态。例如动物移动的行为:有的动物是陆地上行走,有的是天空中飞翔,有的是水里面游泳。多态,描述的就是这样的状态。多态:是指同一行为,具有多个不同表现形式。要想实现多态,有几个前提:类的继承或者接口的实现关系之一方法的重写(不重写方法则无意义)父类引用指向子类对象(标准格式)2.格式父类名称 对象名 = new

2020-05-18 18:07:48 213

原创 重学Java(029)—— Java基础知识(接口中的优先级问题、接口中的多继承)

学习内容:一、接口中的优先级问题二、接口中的多继承一、接口中的优先级问题在我们使用接口的时候要注意一些问题,例如:接口是没有静态代码块或者构造方法的。一个类的直接父类是唯一的,但是一个类可以同时实现多个接口。格式:public class MyInterfaceImpl implements MyInterfaceA,MyInterfaceB { //覆盖重写所有抽象方法}如果实现类所实现的多个接口当中存在重复的抽象方法,那么只需要覆盖重写一次即可。如果实现类没有覆盖重写所

2020-05-17 13:57:39 993

原创 重学Java(028)—— Java基础知识(接口中的私有方法、接口中的常量、接口小结)

学习内容:一、接口中的私有方法二级目录三级目录一、接口中的私有方法当我们需要抽取一个共有方法,用来解决两个默认方法之间重复代码的问题的时候,这个共有方法不应该让实现类使用,应该是私有化的。从Java 9开始,接口中允许定义私有方法。普通私有方法:解决多个默认方法之间重复代码问题格式:private 返回值类型 方法名称(参数列表) { 方法体}静态私有方法:解决多个静态方法之间重复代码问题格式:private static 返回值类型 方法名称(参数列表) {

2020-05-17 11:51:40 266

原创 重学Java(027)—— Java基础知识(接口概述、接口中的抽象方法、默认方法、静态方法)

学习内容:一、接口的概述二、三、一、接口的概述1.概述接口,是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么接口的内部主要就是封装了方法,包含抽象方法(JDK 7及以前),默认方法和静态方法(JDK 8),私有方法(JDK 9)。二、三、...

2020-05-12 18:25:17 262

原创 重学Java(026)—— Java基础知识(抽象方法和抽象类、注意事项)

学习内容:一、抽象方法和抽象类二、抽象类和抽象方法的注意事项一、抽象方法和抽象类1.概述在一个继承关系当中,父类中的方法,被它的子类们重写,子类各自的实现都不尽相同。那么父类的方法声明和方法主体,只有声明还有意义,而方法主体则没有存在的意义了。我们把没有方法主体的方法称为抽象方法。Java语法规定,包含抽象方法的类就是抽象类。2.abstract使用格式抽象方法:使用 abstract 关键字修饰方法,该方法就成了抽象方法,抽象方法只包含一个方法名,而没有方法体。也就是说加上abstract关键

2020-05-11 15:35:41 154

原创 重学Java(025)—— Java基础知识(继承后的构造方法、super的三种用法、this的三种用法、继承的三个特点)

学习内容:一、继承后的构造方法二、super的三种用法三、this的三种用法一、继承后的构造方法当类之间产生了继承关系,其中父类和子类中的构造方法也产生了一定的影响。由于构造方法的名字是与类名一致的,所以子类是无法继承父类构造方法的。构造方法的作用是初始化成员变量的。所以子类的初始化过程中,必须先执行父类的初始化动作。子类的构造方法中默认有一个 super() ,表示调用父类的构造方法,父类...

2020-05-04 22:20:59 145

原创 重学Java(024)—— Java基础知识(继承概述、继承后的成员变量、继承后的成员方法)

学习内容:一、继承概述二、继承后的成员变量三、继承后的成员方法一、继承概述1.概述在Java中有非常之多的类,当多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那一个类即可。其中,多个类可以称为子类、派生类,单独那一个类称为父类、超类(superclass)或者基类。在继承的关系中,“子类就是一个父类”。也就是说,子类可以被当作父类...

2020-04-29 21:28:42 198

原创 重学Java(023)—— Java基础知识(数组工具类Arrays及其练习、数学工具类Math及其练习)

学习内容:一、数组工具类Arrays及其练习二、数学工具类Math及其练习一、数组工具类Arrays及其练习java.util.Arrays是一个与数组相关的工具类,里面提供了大量静态方法,用来实现数组常见的操作。下面我们介绍常见的两个:toString()和sort()方法public static String toString(数组) :将参数数组变成字符串(按照默认格式:[元素1,...

2020-04-28 17:57:10 177

原创 重学Java(022)—— Java基础知识(静态static内存图解、静态代码块)

学习内容:一、静态static内存图解二、静态代码块一、静态static内存图解static 修饰的内容是随着类的加载而加载的,且只加载一次;存储于一块固定的内存区域(静态区),所以,可以直接被类名调用;它优先于对象存在,所以,可以被所有对象共享。在内存中:(来源:黑马程序员教程)二、静态代码块静态代码块的格式是:public class 类名称 { static { ...

2020-04-28 14:07:26 212

原创 重学Java(021)—— Java基础知识(static关键字、修饰成员变量、修饰成员方法)

学习内容:一、static关键字二、修饰成员变量三、修饰成员方法一、static关键字1.概述关于 static 关键字的使用,它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属于某个对象的。也就是说,既然属于类,就可以不靠创建对象来调用了。也就是说,如果一个成员变量使用了static关键字,那么这个变量不再属于对象自己,而是属于所在的类,多个对象共享一份数据。当...

2020-04-27 15:06:39 324

原创 重学Java(020)—— Java基础知识(字符串的截取、字符串的转换、字符串的分割、两个练习)

学习内容:一、字符串的截取二、字符串的转换三、字符串的分割四、两个练习一、字符串的截取字符串的截取意思是在一个完整的字符串中,拿出一段来,产生一个新的字符串,常用的字符串的截取方法有两种:public String substring(int index):截取从参数位置一直到字符串末尾,返回新字符串。public String substring(int begin, int end)...

2020-04-26 17:10:06 185

原创 重学Java(019)—— Java基础知识(字符串概述、字符串的使用、字符串的比较、字符串的获取)

学习内容:一、字符串概述二、字符串的使用三、字符串的比较四、字符串的获取一、字符串概述1.String类概述java.lang.String类代表字符串。我们在API文档中可以看到“Java程序中的所有字符串面值(如 “abc”)都作为此类的实例实现。”也就是说,程序当中所有的双引号字符串,都是String类的对象。(就算没有new,也是如此。)类String中包括用于检查各个字符串的方法,...

2020-04-23 17:37:17 137

原创 重学Java(018)—— Java基础知识(ArrayList集合存储基本数据类型、三个练习)

学习内容:一、ArrayList集合存储基本数据类型二级目录三级目录一、ArrayList集合存储基本数据类型我们在学习ArrayList的时候知道,ArrayList对象不能存储基本类型,只能存储引用类型的数据。类似 不能写,但是存储基本数据类型对应的包装类型是可以的。所以,想要存储基本类型数据, <> 中的数据类型,必须转换后才能编写,转换写法如下:二级目录三级目录...

2020-04-22 17:38:43 412

原创 重学Java(017)—— Java基础知识(ArrayList类、常用方法、遍历数组集合)

学习内容:一、ArrayList类二级目录三级目录一、ArrayList类当我们需要将多个对象存储在一个数组当中时,我们就需要用到对象数组,但是数组的长度是固定的,不够灵活,无法适应数据变化的需求。为了解决这个问题,Java提供了另一个容器 java.util.ArrayList 集合类,让我们可以更便捷的存储和操作对象数据。java.util.ArrayList 是大小可变的数组的...

2020-04-22 12:50:56 232

原创 重学Java(016)—— Java基础知识(Random类、两个练习)

学习内容:一、Random类二、练习一三、练习二一、Random类1.什么是Random类?Random类的实例用来生成伪随机数。2.使用步骤同Scanner类一样,使用起来也是三个步骤:导包import java.util.Random;创建Random r = new Random(); //小括号当中留空即可使用3.1 获取一个随机的int数字(范围是int所有的...

2020-04-21 15:09:37 205

原创 重学Java(015)—— Java基础知识(API文档、Scanner及其练习、匿名对象)

学习内容:一、API文档的使用二、Scanner类,及其练习三、匿名对象一、API文档的使用概述API(Application Programming Interface),应用程序编程接口。Java API是一本程序员的“字典”,是JDK中提供给我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。所以我们可以通过查询AP...

2020-04-20 17:40:33 170

原创 重学Java(014)—— Java基础知识(封装的优化:this关键字、构造方法;定义一个标准的类:Java Bean)

学习内容一、this关键字二、构造方法三、定义一个标准的类一、this关键字我们在setter方法中定义的形参的名称,常常不能达到有特定含义的效果,也就是“见名知意”,那么我们将其修改为与成员变量一致的名字,就可以达到“见名知意”的效果。但此时又产生了新的问题:成员变量的值无法传递了。也就是说,在修改了 setXxx() 的形参变量名后,方法并没有给成员变量赋值。这是因为当方法的局部变量和类的...

2020-04-16 18:02:50 177

原创 重学Java(013)—— Java基础知识(开始学习封装:封装概述、private关键字)

学习内容:一、封装二、private关键字一、封装概述面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据,必须通过指定的方式。适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。简而言之:封装就是将一些细节信息隐藏起来,对外界不可见。在Java中...

2020-04-16 15:30:57 129

原创 重学Java(012)—— Java基础知识(类、对象、举例、局部变量和成员变量的区别)

学习内容:一、类二、对象对象的使用格式:三、一个例子四、局部变量和成员变量的区别一、类类是什么?“人类”就是一个很好的例子,所有的人类,医生警察老师学生等等等等都是属于人类,那么类的具体定义是什么呢?类:是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该类事物。类的定义格式:public class ClassName {//成员变量//...

2020-04-15 17:34:13 181

原创 重学Java(011)—— Java基础知识(开始学习面向对象)

学习内容:一、面向对象思想概述二、面向对象与面向过程的区别三、举例说明一、面向对象思想概述Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下,使用Java语言去设计、开发计算机程序。 这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成...

2020-04-13 14:57:57 107

原创 重学Java(010)—— Java基础知识(数组作为方法参数、数组作为返回值、一个编程练习)

学习内容:一、数组作为方法参数二、数组作为返回值三、一个编程练习一、数组作为方法参数在定义一个方法时,我们要用到参数,除了基本数据类型之外,那么数组可以作为方法的参数吗?答案是可以的。此时当我们调用方法的时候,向方法的小括号进行传参,传递进去的其实是数组的地址值。代码举例说明:public class Demo01ArrayParam { public static void m...

2020-04-10 17:13:42 227

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除