javaSE_8
文章平均质量分 62
本专栏,从最简单的Java基础开始,一路教你如何蜕变为一个Java 8 专家。基本内容参考Oracle官方培训文档进行
独孤文彬
人生的转折从大米时代开始
展开
-
Spring Boot事务-了解事务传播
视频讲解地址:(预留:待上传……)让我们开始吧:什么是事务的传播?任何应用程序都涉及调用其他服务或组件的许多服务或组件。事务传播指示任何组件或服务是否会或不会参与事务,以及调用主叫组件/服务已创建或未创建事务的行为。我们将利用上一章开发的Spring Boot Transaction项目。它具有组织服务,可以呼叫员工服务和健康保险服务。同样在前面的示例中,我们仅将事务注释添加到了组织服务中。但是,假设用户希望通过两种方式调用雇员服务,即- 使用组织服务通话- 直接致电员工服务。由于也翻译 2020-06-24 09:27:14 · 393 阅读 · 0 评论 -
java基础——各种变量你晕了不?
java 中的变量大致分为 成员变量 和 局部变量 两大类。成员变量: 在类体里面定义的变量称为成员变量; 如果该成员变量有 static 关键字修饰,则该成员变量称为 静态变量 或 类变量; 如果该成员变量没有 static 关键字修饰,则该成员变量被称为 非静态变量 或 实例变量。原创 2016-02-25 17:18:13 · 1212 阅读 · 27 评论 -
javaSE_8系列博客——Java语言的特性(五)--接口和继承(1)--宏观把控
describes interfaces—what they are, why you would want to write one, and how to write one. This section also describes the way in which you can derive one class from another. That is, how a subclass c原创 2017-06-25 13:15:05 · 342 阅读 · 7 评论 -
javaSE_8系列博客——Java语言的特性(三)--类和对象(19)--嵌套类(Lambda 表达式)
匿名类的一个问题是,如果您的匿名类的实现非常简单,例如仅包含一个方法的接口,则匿名类的语法可能看起来很笨重且不清楚。在这些情况下,您通常会尝试将function作为参数传递给另一种方法,例如当有人点击按钮时应该采取什么措施。 Lambda表达式使您能够执行此操作,将function视为方法参数或代码作为数据。 上一节“匿名类”介绍如何实现基类而不给它一个名称。虽然这通常比命名类更简洁,对于只有一种方翻译 2017-06-06 11:32:17 · 576 阅读 · 8 评论 -
javaSE_8系列博客——Java语言的特性(三)--类和对象(20)--嵌套类(Lambda 表达式--VS--方法引用)
回顾上节的Lambda表达式的内容:您已经学会了使用lambda表达式创建匿名方法。然而,有时,lambda表达式只是调用现有方法。在这些情况下,通过名称引用现有方法往往更加清楚。方法引用使您能够做到这一点 ; 对于已经有名称的方法,它们是紧凑的,易于阅读的lambda表达式。再次考虑Lambda表达式中讨论的Person类:public class Person { public enum翻译 2017-06-17 10:58:15 · 537 阅读 · 4 评论 -
javaSE_8系列博客——Java语言的特性(三)--类和对象(21)--何时使用Lambda 表达式?
如“嵌套类”一节所述,嵌套类使您能够逻辑地对仅在一个地方使用的类进行分组,提高程序的封装性,并创建更易读和可维护的代码。局部(本地)类,匿名类和lambda表达式都具备了这些优点 ; 但是,它们各自有更具体的情况使用场景:局部(本地)类:如果您需要创建一个类的多个实例,访问其构造函数或引入新的命名类型(例如,以后需要调用其他方法),请使用它匿名类:如果需要声明字段或其他方法,请使用它。Lamb翻译 2017-06-17 15:45:35 · 464 阅读 · 4 评论 -
javaSE_8系列博客——Java语言的特性(五)--接口和继承(2)--定义接口
接口声明包括修饰符,关键字接口,接口名称,父接口(如果有)的逗号分隔列表)和接口体。例如:public interface GroupedInterface extends Interface1, Interface2, Interface3 { // constant declarations // base of natural logarithms double E = 2翻译 2017-06-25 13:20:51 · 353 阅读 · 7 评论 -
javaSE_8系列博客——Java语言的特性(五)--接口和继承(3)--实现接口
实现一个接口要声明一个实现接口的类,在类声明中包含一个implements子句。你的类可以实现多个接口,所以implements关键字后面是一个由类实现的接口的逗号分隔列表。按照惯例,implements子句紧跟着extends子句,如果有的话。一个简单的接口,Relatable考虑使用一个接口来定义如何比较对象的大小。public interface Relatable { // this翻译 2017-06-26 08:27:56 · 425 阅读 · 7 评论 -
javaSE_8系列博客——Java语言的特性(五)--接口和继承(4)--使用接口作为类型
定义新接口时,您将定义新的引用数据类型。您可以在任何可以使用任何其他数据类型名称的地方使用接口名称。如果定义类型为一个接口的引用变量,则分配给它的任何对象必须是实现该接口的类的实例。 作为一个例子,这里是一个找到一对对象中最大对象的方法,对于从实现的类中实例化Relatable的任何对象。public Object findLargest(Object object1, Object object2翻译 2017-06-26 08:44:11 · 315 阅读 · 8 评论 -
JavaSE_8系列博客——Java语言的特性(五)--接口和继承(5)--深入理解,并优化接口
考虑一个你开发的接口叫做DoIt:public interface DoIt { void doSomething(int i, double x); int doSomethingElse(String s);}假设在以后的时候,你要添加第三种方法到DoIt,这样接口现在变成:public interface DoIt { void doSomething(int i, doub翻译 2017-06-26 09:02:18 · 361 阅读 · 9 评论 -
javaSE_8系列博客——集合——宏观概述
本节介绍Java Collections Framework。在这里,您将了解什么是集合,以及如何使您的工作更容易,程序更好。您将了解构成Java Collections Framework的核心元素 - 接口,实现,聚合操作和算法。简介告诉你什么是的集合,以及如何使你的工作更容易,程序更好。您将了解组合框架的核心元素:接口,实现和算法。接口描述了核心的集合的接口,这是Java Collection翻译 2017-06-26 20:17:35 · 321 阅读 · 8 评论 -
JavaSE_8系列博客——Java语言的特性(五)--接口和继承(6)--默认方法的使用场景
为什么实用默认方法?场景如下本章节:描述了一个例子,涉及计算机控制汽车的制造商,他们发布行业标准接口,描述哪些方法可以被调用来操作他们的汽车。如果这些电脑控制的汽车制造商将新的功能(如飞行)添加到他们的汽车怎么办?这些制造商将需要指定新的方法,使其他公司(如电子指导仪器制造商)能够使其软件适应飞行汽车。这些汽车制造商会在哪里申报这些新的与飞行有关的方法?如果将它们添加到原始接口,那么实现这些接口的程翻译 2017-06-27 08:48:08 · 750 阅读 · 7 评论 -
javaSE_8系列博客——集合——集合的接口(1)——概述
核心集合接口封装了不同类型的集合,如下图所示。这些接口允许集合被独立于其表示的细节而被操纵。核心集合接口是Java Collections Framework的基础。如下图所示,核心集合接口形成层次结构。 Set是一种特殊的集合,一个SortedSet是一种特殊的集合,等等。还要注意,层次结构由两个不同的树组成 - 一个Map不是一个真正的集合。请注意,所有核心集合接口都是通用的。例如,这是C翻译 2017-06-28 09:57:11 · 446 阅读 · 10 评论 -
javaSE_8系列博客——重要的基础Java类——Excavations(异常处理机制)--1--宏观把控
引言:异常处理篇章,用来解释异常机制,以及如何用于处理错误和其他异常情况。本系列介绍了异常,如何抛出异常和捕获异常,捕获异常时如何处理异常,以及如何使用异常类层次结构。什么是异常一个异常,是在程序执行期间发生的一个事件,它破坏了正常的程序指令流程。捕捉异常或指定要求本节介绍如何捕获和处理异常。讨论包括try,catch和finally块,以及链接的异常和日志记录。如何抛出异常本节涵盖了throw语句翻译 2017-07-04 15:36:55 · 337 阅读 · 5 评论 -
javaSE_8系列博客——重要的基础Java类——Excavations(异常处理机制)--2--什么是异常?
术语Excavation是短语“exceptional event”的缩写。定义:一个异常是在执行程序期间发生的一个事件,它破坏程序指令的正常流程。当方法中发生错误时,该方法将创建一个对象并将其移交给运行时系统。称为异常对象 exception object,该对象包含有关错误的信息,包括错误发生时的类型和程序状态。创建异常对象并将其传递给运行时系统的行为,称为抛出异常。 一个方法抛出异常后,运行翻译 2017-07-04 16:11:50 · 457 阅读 · 5 评论 -
javaSE_8系列博客——重要的基础Java类——Excavations(异常处理机制)--3--捕捉异常或指定要求
有效的Java编程语言代码必须符合Catch或指定要求。这意味着可能引发某些异常的代码必须由以下任一方包括:一个捕获异常的try语句。try语句中必须为异常提供一个处理程序一种指定它可以抛出异常的方法。该方法必须提供一个列出异常的throws子句不能遵守Catch或指定要求的代码将无法编译。并不是所有的异常都受到“捕捉”或“指定要求”的限制。为了理解为什么,我们需要看看三个基本类别的例外情况,翻译 2017-07-04 16:54:18 · 390 阅读 · 6 评论 -
javaSE_8系列博客——重要的基础Java类——多线程--1--宏观把控
引言:计算机用户认为他们的系统一次可以做一件以上的事情。他们假设他们可以继续在文字处理器中工作,而其他应用程序下载文件,管理打印队列和流音频。通常,单个应用程序通常也会一次做一件事情。例如,流式音频应用程序必须同时从网络读取数字音频,解压缩,管理播放和更新其显示。即使文字处理器也应该随时准备好响应键盘和鼠标事件,无论重新格式化文本或更新显示器多么忙碌。可以做这些事情的软件被称为并发软件。 Java平翻译 2017-07-06 09:16:27 · 435 阅读 · 8 评论 -
javaSE_8系列博客——重要的基础Java类——多线程--2--进程和线程
引言:在并发编程中,有两个基本的执行单元:进程和线程。在Java编程语言中,并发编程主要关心线程。但是,进程也很重要。 计算机系统通常具有许多活动进程和线程。即使在只有单个执行核心的系统中也是如此,因此只有一个线程在任何给定的时刻实际执行。单个核心的处理时间通过称为时间分片的OS功能在进程和线程之间共享。计算机系统拥有多个处理器或具有多个执行核心的处理器变得越来越普遍。这大大增强了系统并行执行进程和翻译 2017-07-06 17:54:53 · 435 阅读 · 7 评论 -
javaSE_8系列博客——Java语言的特性(三)--类和对象(21)--枚举类型
枚举类型是一种特殊的数据类型,可使变量成为一组预定义的常量。变量必须等于为其预定义的值之一。常见的例子包括罗盘上的方向(NORTH,SOUTH,EAST和WEST的值)和星期几。 因为它们是常量,所以枚举类型的字段的名称是大写字母。 在Java编程语言中,您可以使用枚举关键字定义枚举类型。例如,您将指定一个星期的枚举类型为:public enum Day { SUNDAY, MONDA翻译 2017-05-23 09:29:17 · 420 阅读 · 9 评论 -
javaSE_8系列博客——Java语言的特性(三)--类和对象(16)--嵌套类(内部类的示例)
要看到正在使用的内部类,首先考虑一个数组。在下面的示例中,您将创建一个数组,用整数值填充数组,然后按升序排列数组的均匀索引值。下面的DataStructure.java示例包括:DataStructure外部类,其中包含一个构造函数,用于创建包含连续整数值(0,1,2,3等)的数组的DataStructure实例,以及打印具有均匀索引的数组元素值的方法。EvenIterator内部类实现了Dat翻译 2017-05-13 22:14:42 · 416 阅读 · 2 评论 -
javaSE_8系列博客——Java语言的特性(三)--类和对象(17)--嵌套类(本地/局部类)
本地(局部)类是在块中定义的类,它是花括号之间的一组零个或多个语句。你通常会发现方法体中定义的局部类。声明一个局部类您可以在任何块中定义一个局部类(有关详细信息,请参阅表达式,语句和块)。例如,您可以在方法体,for循环或if子句中定义局部类。 以下示例LocalClassExample验证两个电话号码。它在方法validatePhoneNumber中定义局部类PhoneNumber:public翻译 2017-05-14 11:28:41 · 345 阅读 · 2 评论 -
javaSE_8系列博客——Java语言的特性(三)--类和对象(18)--嵌套类(匿名类)
匿名类使您能够使您的代码更简洁。它们使您能够同时声明和实例化一个类。他们就像局部类,除了他们没有名字。如果您只需要使用一次局部类,请使用匿名类。声明一个匿名类局部类是类声明,但匿名类是表达式,这意味着您在另一个表达式中定义类。以下示例HelloWorldAnonymousClasses在局部变量frenchGreeting和spanishGreeting的初始化语句中使用匿名类,但是使用局部类来初始翻译 2017-05-14 22:02:39 · 436 阅读 · 3 评论 -
javaSE_8系列博客——Java语言的特性(四)--注解--(1)--基础知识
概述:注解,一种元数据形式提供了一个不属于程序本身的程序数据。注解对它们所注解代码的操作没有直接的影响。作用:注解有很多用途,其中:编译器的信息 - 编译器可以使用注释来检测错误或平息警告。编译时和部署时处理 - 使用软件工具可以处理注解信息以生成代码,XML文件等。运行时处理 - 有些批注可在运行时检查。本课将说明可以使用注释的位置,如何应用注解,翻译 2017-05-16 21:23:07 · 586 阅读 · 5 评论 -
javaSE_8系列博客——Java语言的特性(四)--注解--(2)-- 声明一个注解
许多注释替换代码中的注释。假设一个软件组传统上开始每个类的正文,提供重要信息的意见: public class Generation3List extends Generation2List { // Author: John Doe // Date: 3/17/2002 // Current revision: 6 // Last modified: 4/1翻译 2017-05-16 21:34:21 · 357 阅读 · 4 评论 -
javaSE_8系列博客——Java语言的特性(四)--注解--(3)-- 预定义注解
一组注释类型是在Java SE API中预定义的。一些注释类型由Java编译器使用,一些注释类型也适用于其他注释Java语言使用的注释类型预定义的注释类型定义在 java.lang 这个包中,他们是:@Deprecated, @Override, and @SuppressWarnings等……@Deprecated 注释表示标记的元素已被弃用,不应再使用。翻译 2017-05-19 09:25:46 · 580 阅读 · 5 评论 -
javaSE_8系列博客——Java语言的特性(四)--注解--(4)-- 类型注解和可插拔类型系统
在Java SE 8发布之前,注解只能应用于声明。从Java SE 8版本开始,注解也可以应用于任何类型的使用。这意味着注解可以在您使用类型的任何位置使用。使用类型的几个示例是类实例创建表达式(new),casts,implements clauses和throws子句。这种注解形式称为类型注解,并在注解基础中提供了几个示例。创建类型注解,以支持改进Java程序分析方式,确保更强大的类型检查。翻译 2017-05-19 09:21:45 · 1198 阅读 · 6 评论 -
javaSE_8系列博客——Java语言的特性(四)--注解--(5)-- 如何使用自定义的注解?
原文的链接地址:https://www.mkyong.com/java/java-custom-annotations-example/在本教程中,我们将向您展示如何创建两个自定义注释@Test和@TestInfo来模拟一个简单的单元测试框架。这个单元测试例子是受到这个官方Java注释文章的启发。1、@Test Annotation2、@TesterInfo Annot翻译 2017-05-19 09:00:57 · 513 阅读 · 6 评论 -
javaSE_8系列博客——Java语言的特性(三)--类和对象(9)--对象的创建
你知道,一个类提供了对象的蓝图;你从类创建一个对象。从CreateObjectDemo程序中获取的每个以下语句创建一个对象并将其分配给一个变量:Point originOne = new Point(23, 94);Rectangle rectOne = new Rectangle(originOne, 100, 200);Rectangle rectTwo = new Rectangle(50原创 2017-05-07 22:14:40 · 755 阅读 · 2 评论 -
javaSE_8系列博客——Java语言的特性(三)--类和对象(10)--对象的使用
创建对象后,您可能需要使用它。您可能需要使用其中一个字段的值,更改其中的一个字段,或者调用其中一个方法来执行操作。引用对象的字段对象字段以其名称访问。您必须使用明确的名称。(或者,使用公开的属性访问器,即每个属性的Get、Set方法。像我们在上一个章节讲到的示例一样。) 您可以在自己的类中为一个字段使用一个简单的名称。例如,我们可以在Rectangle类中添加一个打印宽度和高度的语句:System原创 2017-05-08 11:32:43 · 379 阅读 · 3 评论 -
javaSE_8系列博客——Java语言的特性(三)--类和对象(11)--从方法返回值
以下几种情况,会让一个方法返回到调用它的代码 1. 完成方法中的所有语句 2. 达到return语句 3. 抛出异常(稍后覆盖)以第一个为例。 在方法声明中声明方法的返回类型。在方法的正文内,你使用return语句来返回值。 声明为void的任何方法都不返回值。它不需要包含return语句,但它可以这样做。在这种情况下,return语句可以用于分支出控制流块并退出该方法,并且简单地使用如原创 2017-05-09 11:16:48 · 571 阅读 · 4 评论 -
javaSE_8系列博客——Java语言的特性(三)--类和对象(12)--使用this关键字
在实例方法或构造函数中,这是对当前对象的引用,该对象的方法或构造函数被调用。您可以使用this方法从实例方法或构造函数中引用当前对象的任何成员。this关键字和字段:使用this关键字的最常见原因是因为字段被方法或构造函数参数遮蔽。例如,Point类是可以这样写的:public class Point { public int x = 0; public int y = 0;原创 2017-05-09 14:53:09 · 499 阅读 · 6 评论 -
javaSE_8系列博客——Java语言的特性(三)--类和对象(12)--类成员的访问控制
访问级别修饰符确定其他类是否可以使用特定字段或调用特定方法。有两个级别的访问控制:在最高级别(类的级别) - public或包private(没有显式修饰符)。在成员级别,public,private,protected或package-private(没有显式修饰符)。可以使用修饰符public声明一个类,在这种情况下,该类对所有类都可见。如果一个类没有修饰符(默认值,也称为package-翻译 2017-05-10 10:14:51 · 544 阅读 · 4 评论 -
javaSE_8系列博客——Java语言的特性(三)--类和对象(13)--理解类的成员
在本节中,我们讨论使用static关键字来创建属于该类的字段和方法,而不是该类的一个实例。类变量(静态字段):当从相同的类蓝图创建一些对象时,它们各自有不同的实例变量副本。在Bicycle类的情况下,实例变量是节奏,齿轮和速度。每个自行车对象都有自己的这些变量的值,存储在不同的内存位置。 有时候,您想要有所有对象共有的变量。这是通过static修饰符来实现的。在其声明中具有静态修饰符的字段称为静态字翻译 2017-05-12 09:09:08 · 481 阅读 · 5 评论 -
javaSE_8系列博客——Java语言的特性(三)--类和对象(14)--初始化字段
如您所见,您通常可以在其声明中为字段提供初始值:public class BedAndBreakfast { // initialize to 10 public static int capacity = 10; // initialize to false private boolean full = false;}当初始化值可用并且初始化可以放在一行时,这很好。然翻译 2017-05-12 19:32:10 · 343 阅读 · 2 评论 -
javaSE_8系列博客——Java语言的特性(三)--类和对象(15)--嵌套类
Java编程语言允许您在另一个类中定义一个类。这样的一个类叫做一个嵌套类,例如:class OuterClass { ... class NestedClass { ... }}嵌套类分为静态和非静态两类。声明为静态的嵌套类称为静态嵌套类。非静态嵌套类称为内部类。class OuterClass { ... static class Stat翻译 2017-05-13 09:12:23 · 761 阅读 · 3 评论 -
javaSE_8系列博客——Java语言的特性(三)--类和对象(7)--给方法或者构造器传输信息
方法或构造函数的声明,用来声明该方法或构造函数参数的数量和类型。例如,以下是根据贷款金额,利率,贷款期限(期间数)以及贷款的未来价值计算住房贷款每月支付的方法:public double computePayment( double loanAmt, double rate, double f原创 2017-05-06 09:17:18 · 568 阅读 · 3 评论 -
javaSE_8系列博客——Java语言的特性(三)--类和对象(8)--对象
典型的Java程序会创建许多对象,如您所知,通过调用方法进行交互。通过这些对象交互,程序可以执行各种任务,例如实现GUI,运行动画,或通过网络发送和接收信息。一旦一个对象完成了创建它的工作,它的资源将被再循环供其他对象使用。这是一个名为CreateObjectDemo的小程序,它创建三个对象:一个Point对象和两个Rectangle对象。您将需要所有三个源文件来编译此程序。source code原创 2017-05-07 10:08:28 · 630 阅读 · 2 评论 -
javaSE_8系列博客——Java语言的特性(三)--类和对象(1)--概述
通过您现在掌握的Java编程语言的基础知识,您可以学习编写自己的类。在本章节中,您将找到有关定义自己的类的信息,包括声明成员变量,方法和构造函数。 您将学习使用您的类来创建对象,以及如何使用您创建的对象。 本课程还涵盖了其他类中的嵌套类和枚举。类本节介绍一个类的解剖结构,以及如何声明字段,方法和构造函数对象本节介绍创建和使用对象。您将学习如何实例化一个对象,一旦实例化,如何使用点运算符来访问对象的实原创 2017-05-02 08:34:30 · 454 阅读 · 2 评论 -
javaSE_8系列博客——Java语言的特性(三)--类和对象(2)--类(宏观概述)
声明一个类在这个章节中,你将学习到如何在Java的世界中声明一个类。当然,里面还包括了类和类之间的继承、实现等等实现细节。声明成员变量如何在Java中声明一个成员变量?访问控制?类型?命名?你的这些疑问,都将在这里得到你想要的答案!定义一个方法在一个Java类中如何定义一个方法?方法和函数有什么区别?如何去重载一个方法?本章节以一种非常简单的方式,为您介绍了这些内容。为你的类提供一个构造器什么是构造原创 2017-05-02 08:51:49 · 448 阅读 · 3 评论 -
javaSE_8系列博客——Java语言的特性(三)--类和对象(3)--类的声明
您已经看到以下列方式定义的类:class MyClass { // field, constructor, and // method declarations}这是一个类声明。类体(大括号之间的区域)包含提供从类创建的对象的生命周期的所有代码:用于初始化新对象的构造函数用于提供类状态的字段的声明及其对象以及实现类及其对象的行为的方法前面的类声明是一个最小的声明。它仅包含原创 2017-05-03 10:12:10 · 441 阅读 · 3 评论