Java 基础
文章平均质量分 97
Java 语法基础用法
木刀的博客
爱人者人恒爱之!
展开
-
15、I/O
1、Basic I/O1.1、 Byte Streams处理原始二进制数据的I/O.程序使用字节流来执行8位字节的输入和输出。所有的字节流类都是InputStream和OutputStream的后代。有许多字节流类。为了演示字节流是如何工作的,我们将重点介绍文件I/O字节流、FileInputStream和FileOutputStream。其他类型的字节流也以同样的方式使用;它们主要不同于...原创 2021-02-23 13:15:56 · 237 阅读 · 0 评论 -
16、字符串
1、StringString 是不可变的,String 类中每一个看起来会修改 String 值的方法,实际上都是创建了一个全新的 String 对象,以包含修改后的字符串内容。而最初的 String 对象则丝毫未动。对于一个方法而言,参数是为该方法提供信息的,而不是想让该方法改变自己的。1.1、StringBuilder 与 + 重载的对比使用StringBuilder的相关操作会更好,+内部也会使用StringBuilder1.2 、如果你真的想要打印对象的内存地址,应该调用 Object.原创 2020-07-10 15:22:42 · 375 阅读 · 0 评论 -
17、数组
对象数组存储的是对象的引用,而基元数组则直接存储基本数据类型的值。length 只能告诉你数组可以存储多少元素;这就是说,数组对象的大小并不是真正存储在数组中对象的个数当你创建一个数组对象,其引用将自动初始化为 null,因此你可以通过检查特定数组元素中的引用是否为 null 来判断其中是否有对象。基元数组也有类似的机制,比如自动将数值类型初始化为 0,char 型初始化为 (char)0,布尔类型初始化为 false。可以参数化数组本身的类型...原创 2020-06-13 20:37:14 · 187 阅读 · 0 评论 -
14、异常
Java 使用异常来提供一致的错误报告模型,使得构件能够与客户端代码可靠地沟通问题。因为异常处理是 Java 中唯一官方的错误报告机制,并且通过编译器强制执行。概念用强制规定的形式来消除错误处理过程中随心所欲的因素。问题出现了,你也许不清楚该如何处理,但你的确知道不应该置之不理,你要停下来,看看是不是有别人或在别的地方,能够处理这个问题。只是在当前的环境中还没有足够的信息来解决这个问题,所...转载 2020-04-24 15:36:42 · 834 阅读 · 0 评论 -
Java equal 和 hashcode
1、public boolean equals(Object obj)指示某个其他对象是否“等于”这个对象。equals方法实现了非空对象引用的等价关系:It is reflexive(反身的):对于任何非空的引用值x, x.equals(x)应该返回true。对称性(symmetric):对于任何非空的引用值x和y,当且仅当y.equals(x)返回true时,x.equals(y)...原创 2020-04-22 15:02:48 · 198 阅读 · 0 评论 -
lombok注解
1、@Data以下所有注解一起使用的简写@ToString@EqualsAndHashCode对所有字段@Getter对所有非static 字段@Setter@RequiredArgsConstructor2、@ToString生成toString()方法的实现。默认情况下,它会打印您的类名,以及每个字段,按顺序,用逗号分隔。默认情况下,将打印所有非静态字段。@ToString...原创 2020-04-22 11:30:16 · 449 阅读 · 0 评论 -
13、流式编程
十四、流式编程利用流,无需迭代集合中的元素,就可以提取和操作它们。组合在一起,在流上形成一条操作管道。 lambda表达式、方法引用、流式编程结合使用。 声明式编程(Declarative programming)是一种:声明要做什么,而非怎么做的编程风格。正如我们在函数式编程中所看到的。 流式编程采用内部迭代,这是流式编程的核心特性之一。这种机制使得编写的代码可读性更强,也更能利用多核处...转载 2020-04-22 09:13:50 · 1125 阅读 · 0 评论 -
番外1、多线程
ExecutorModule java.basePackage java.util.concurrentInterface Executor执行已提交的可运行任务的对象。该接口提供了一种将任务提交与如何运行每个任务的机制(包括线程使用、调度等细节)分离的方法。通常使用Executor而不是显式地创建线程。例如,相比一组任务中的每个任务调用new Thread(new RunnableTa...翻译 2020-03-26 16:29:29 · 147 阅读 · 0 评论 -
12、函数式编程
文章目录1、Lambda表达式2、方法引用2.1、未绑定的方法引用3、函数式接口函数式编程语言操纵代码片段就像操作数据一样容易。使用代码以某种方式操纵其他代码的想法也很有趣,只要能保证它更安全。函数式编程(FP)的意义,通过合并现有代码来生成新功能而不是从头开始编写所有内容,我们可以更快地获得更可靠的代码。至少在某些情况下,这套理论似乎很有用。OO(object oriented,面向对象...转载 2020-03-23 16:11:47 · 298 阅读 · 0 评论 -
11、集合
文章目录1、类型安全的集合2、基本概念3、添加组元素4、集合的打印5、List6、迭代器6.1、ListIterator7、LinkedList8、Stack9、Set10、Map11、Queue11.1、PriorityQueue12、集合与迭代13、for-in和迭代器小结在任意时刻和任意位置创建任意数量的对象。数组:具有固定的大小尺寸。集合类:基本的类型有 List 、 Set 、 Q...转载 2020-03-20 11:25:52 · 156 阅读 · 0 评论 -
10、内部类
文章目录1、创建内部类2、链接外部类3、使用.this和.new4、内部类与向上转型5、内部类方法和作用域6、匿名内部类7、嵌套类7.1、接口内部的类7.2、多层嵌套内部类8、为什么使用内部类8.1、闭包与回调8.2、内部类与控制框架9、继承内部类10、内部类不能被覆盖11、局部内部类和匿名内部类12、内部类标识符1、创建内部类如果想从外部类的非静态方法之外的任意位置创建某个内部类的对象,那么...转载 2020-03-20 09:53:56 · 158 阅读 · 0 评论 -
九、接口
接口和抽象类提供了一种将接口与实现分离的更加结构化的方法。抽象类,一种介于普通类和接口之间的折中手段。尽管你的第一想法是创建接口,但是对于构建具有属性和未实现方法的类来说,抽象类也是重要且必要的工具。你不可能总是使用纯粹的接口。1、抽象方法和类Java 提供了一个叫做抽象方法的机制,这个方法是不完整的:它只有声明没有方法体。下面是抽象方法的声明语法:abstract void f();...转载 2020-03-15 18:09:16 · 165 阅读 · 0 评论 -
8、多态
多态是面向对象编程语言中,继数据抽象和继承之外的第三个重要特性.多态提供了另一个维度的接口与实现分离,以解耦做什么和怎么做。封装通过合并特征和行为来创建新的数据类型。隐藏实现通过将细节私有化把接口与实现分离。这种类型的组织机制对于有面向过程编程背景的人来说,更容易理解。而多态是消除类型之间的耦合。继承允许把一个对象视为它本身的类型或它的基类类型。这样就能把很多派生自一个基类的类型当作同一类型...转载 2020-03-15 11:32:13 · 154 阅读 · 0 评论 -
7、复用
Java 围绕“类”(Class)来解决问题。我们可以直接使用别人构建或调试过的代码,而非创建新类、重新开始。如何在不污染源代码的前提下使用现存代码是需要技巧的。在本章里,你将学习到两种方式来达到这个目的:第一种方式直接了当。在新类中创建现有类的对象。这种方式叫做 “组合”(Composition),通过这种方式复用代码的功能,而非其形式。第二种方式更为微妙。创建现有类类型的新类。照字面理...转载 2020-03-14 21:33:22 · 153 阅读 · 0 评论 -
6、封装
面向对象设计中的一个基本问题:“如何区分变动的事物和不变的事物”。这个问题对于类库而言尤其重要。类库的使用者必须依赖他们所使用的那部分类库,并且知道如果使用了类库的新版本,不需要改写代码。另一方面,类库的开发者必须有修改和改进类库的自由,并保证客户代码不会受这些改动影响。为了解决这一问题,Java 提供了访问修饰符供类库开发者指明哪些对于客户端程序员是可用的,哪些是不可用的。访问控制权限的等级...转载 2020-03-10 21:14:12 · 144 阅读 · 0 评论 -
5、初始化和清理
有两个安全性问题:初始化和清理。1、利用构造器保证初始化如果一个类有构造器,那么 Java 会在用户使用对象之前(即对象刚创建完成)自动调用对象的构造器方法,从而保证初始化。如何命名构造器方法?存在两个问题:任何命名都可能与类中其他已有元素的命名冲突编译器必须始终知道构造器方法名称,从而调用它所以构造器名称与类名相同2、方法重载方法是行为的命名,你通过名字指代所有的对象,属性和...转载 2020-03-02 21:16:15 · 248 阅读 · 0 评论 -
4、控制流
1、break 和 continue在任何迭代语句的主体内,都可以使用 break 和 continue 来控制循环的流程。 其中,break 表示跳出当前循环体。而 continue 表示停止本次循环,开始下一次循环。2、标签“标签”是后面跟一个冒号的标识符。对 Java 来说,唯一用到标签的地方是在循环语句之前。进一步说,它实际需要紧靠在循环语句的前方 —— 在标签和循环之间置入任何语...转载 2020-03-01 12:34:15 · 240 阅读 · 0 评论 -
3、运算
所有运算符都能根据自己的运算对象生成一个值。除此以外,一些运算符可改变运算对象的值,这叫作“副作用”(Side Effect)。几乎所有运算符都只能操作基本类型(Primitives)。唯一的例外是 =、== 和 !=,它们能操作所有对象(这也是令人混淆的一个地方)。除此以外,String 类支持 + 和 +=。1、赋值右边可以是任何常量、变量或者可产生一个返回值的表达式。但左边必须是一个明...转载 2020-03-01 12:20:43 · 248 阅读 · 0 评论 -
2、万物皆对象
本章你将了解到 Java 程序的基本组成,学习在 Java 中万物(几乎)皆对象的思想。1、对象操纵Java 利用万物皆对象的思想和单一一致的语法方式来简化问题。虽万物皆可为对象,但我们所操纵的标识符实际上只是对对象的“引用” 。仅仅有一个“引用”并不意味着你必然有一个与之关联的“对象”。创建一个 String 引用 String s;这里我们只是创建了一个 String 对象的...转载 2020-03-01 11:30:42 · 886 阅读 · 0 评论 -
1、对象的概念
编程语言就是创建应用程序的思想结构。面向对象编程(Object-Oriented Programming OOP)是一种编程思维方式和编码架构。等你具备一定编程基础后,请务必再回头看。只有这样你才能深刻理解面向对象编程的重要性及设计方式。1、抽象从某种程度上来说,问题的复杂度直接取决于抽象的类型和质量。这里的“类型”意思是:抽象的内容是什么?汇编语言是对底层机器的轻微抽象。接着出现的“命...转载 2020-03-01 09:49:02 · 3034 阅读 · 0 评论 -
二十三、注解
注解(也被成为元数据)为我们在代码中添加信息提供了一种形式化的方式,使我们可以在稍后的某个时刻更容易的使用这些数据。注解在一定程度上是把元数据和源代码文件结合在一起的趋势所激发的,而不是保存在外部文档。注解使得我们可以以编译器验证的格式存储程序的额外信息。注解可以生成描述符文件,甚至是新的类定义,并且有助于减轻编写“样板”代码的负担。通过使用注解,你可以将元数据保存在 Java 源代码中。拥有...原创 2019-12-13 15:45:28 · 177 阅读 · 0 评论 -
Java程序运行过程错误记录及解决的办法
1.Spring的配置文件放到src/main/resources文件夹中原创 2019-12-13 10:54:45 · 537 阅读 · 0 评论