
Java
EVEcho
没有
展开
-
Optional 详解
目录Java 8 实战:用 Optional 取代 null1、创建 Optional 对象例子:Person、Car、Insurance2、map 从Optional中提取、转换值3、flatMap 链接 Optional 对象4、读取 Optional 实例中的变量值5、map、flatMap:以不解包的方式组合两个 Optional 对象6、filt...原创 2019-11-23 13:27:26 · 998 阅读 · 0 评论 -
【自学】Java核心技术卷1_6.3 lambda表达式
lambda表达式:可传递的代码块,可在以后执行一次或多次6.3.1 引入lambda的原因:Java是面向对象语言,不能直接传递代码段,必须构造一个对象,这个对象的类需要有一个方法能包含所需代码段,6.3.2 lambda表达式语法:(参数)->{表达式}如果无参数:要提供空括号 ()->{} 参数类型可由上下文推导:可以省略参数类型 (a,b)->{} 只有一...原创 2019-01-24 22:38:58 · 351 阅读 · 0 评论 -
Java编程:Comparable和Comparator接口
博客内容:对docs的个人翻译、综合多个博客的总结表格、程序练习Public Interface Comparable<T>T: the type of objects that this object may be compared to。要被比较的对象的类型 为实现Comparable接口的类的对象强加impose全排序。这里的排序指类的自然顺序natural order...原创 2019-01-15 11:49:15 · 590 阅读 · 0 评论 -
【自学】Java核心技术卷1_6.4内部类
内部类:定义在另一个类中的类。分为成员内部类(定义在成员位置)、局部内部类(定义在外部类方法中)、匿名内部类(没有类名,只用一次)、静态内部类(static修饰)1、内部类特性内部类可以被写在外部类的任意位置,如成员位置、方法内。 内部类可以用多个实例,每个实例都有自己的状态信息,与其他外部对象的信息相互独立(内部类与外部类没有is-a关系) 当想要定义一个回调函数又不想编写大量代码时...原创 2019-01-21 11:21:24 · 395 阅读 · 0 评论 -
Java编程:Static
static成员:方便在没有创建对象的情况下调用的方法或变量 静态static成员 非静态成员 独立于实例,所有实例对象共享一个副本 每个对象有各自的实例域,互不影响 JVM只分配一次内存,加载类时初始化,直到程序退出时释放 每创建一个实例,就为其分配内存,随实例对象释放 ...原创 2019-01-25 19:42:48 · 246 阅读 · 0 评论 -
Java编程:证明lambda表达式被编译为私有方法
证明方法:查看lambda表达式编译后的字节码lambda简单例程:import java.util.function.Consumer;public class LambdaTest { public static void main(String args[]){ Consumer<String> c= str->System.out.p...原创 2019-02-05 13:00:02 · 613 阅读 · 0 评论 -
【自学】Java核心技术卷1_7.1-7.3异常
参考博客1、博客27 异常、断言、日志Java中的三种处理系统错误的机制:异常处理:捕获异常情况并处理(将控制权从错误产生的地方转移给能够处理这种情况的错误处理器) 断言:有选择的弃用检测(测试期间用检测验证程序操作的正确性) 日志:记录出现的问题,以备日后分析7.1 处理错误如果由于出现错误而使得某些操作没有完成, 程序应该返回到一种安全状态,并能够让用户执行一些其他的命令...原创 2019-02-05 20:04:45 · 1575 阅读 · 0 评论 -
【自学】Java核心技术卷1_7.4断言
断言(Assertion)是Java中一条语句,包含一个布尔表达式,当该布尔值为真,程序则被认为是正确的;当布尔值为假,则系统会抛出错误。 断言机制允许在测试期间向代码中插入一些检查语句,当代码发布时,这些插入的检测语句将会被自动移走断言的形式1)assert condition; // assert x>=0;condition是一个boolean表达式,如果conditio...原创 2019-02-09 21:24:44 · 377 阅读 · 0 评论 -
【自学】Java核心技术卷1_7.5日志
参考博客1、博客2 日志基础在项目开发过程中,可以通过 debug 查找问题。而在线上环境查找问题只能通过打印日志的方式查找问题。Java使用了一种自定义的、可扩展的方法来输出日志。虽然Java通过java.util.logging包提供了一套基本的日志处理API,但你可以很轻松的使用一种或者多种其它日志解决方案。这些解决方案尽管使用不同的方法来创建日志数据,但它们的最终目标是一样的,即将...转载 2019-02-11 15:02:07 · 346 阅读 · 0 评论 -
Java编程:Intellij IDEA使用log4j输出日志记录完整教程
SLF4J简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它支持各种各样的日志框架。按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志框架。 在使用SLF4J的时候,不需要在代码中或配置文件中指定你打算使用那个具体的日志系统,SLF4J提供了统一的记录日志的接口,只要按照其提供的方...原创 2019-02-18 19:36:24 · 17191 阅读 · 6 评论 -
【自学】Java泛型程序设计-1
参考书:《Java核心技术I》+《Java编程思想》泛型程序设计(Generic programming) 意味着编写的代码可以被很多不同类型的对象所重用 使用泛型机制编写的程序代码要比使用Object 变量,然后再进行强制类型转换的代码具有更好的安全性和可读性 只有当你希望使用的类型参数比某个具体类型(或者它的子类型)更加“泛化”时——当你希望代码能够跨多个类工作时,使用泛型才有所...原创 2019-02-25 20:33:29 · 511 阅读 · 0 评论 -
《Java 8实战》- Lambda 详解
目录1、Lambda 表达式:参数 -> 主体2、在函数式接口上使用 Lambda 表达式3、实例:创建环绕行为4、描述常见函数描述符的函数式接口5、利用 Lambda 表达式抛出异常的方法6、编译器对 Lambda 做类型检查、类型推断7、和 void 兼容的 Lambda8、Lambda 内部引用局部变量9、方法引用10、构造函数引用11、复合...原创 2019-10-01 10:45:09 · 363 阅读 · 0 评论 -
《Java 8实战》- Stream 详解
目录流使用流数值流构建流CollectorsCollector并行流流从支持数据处理操作的源生成的元素序列( 源:提供数据,如集合、数组、输入/输出资源。从有序集合生成流时会保留原有顺序)中间操作:可以连接起来的流操作。返回流,出发触发终端操作否则不会进行任何处理,不消耗流终端操作:关闭流的操作。从流的流水线生成结果,返回任何非流的值流的使用一般包括...原创 2019-10-01 11:06:34 · 532 阅读 · 0 评论 -
Java - 泛型详解
目录泛型使用泛型擦除边界处的动作擦除的代价擦除的补偿桥方法泛型使用泛型类 泛型的类型参数只能是引用类型(包括自定义类),不能是简单类型(基本数据类型) 泛型类不能 extends Throwable 类,不能抛出、捕获泛型类对象;在异常规范中可以使用类型变量,但catch 子句中不能使用类型变量 public class GenericTest...原创 2019-10-01 20:36:46 · 951 阅读 · 0 评论 -
使用Lambda表达式的一个用例
英文原文,本文为转载的译文假设你正在创建一个社交网络应用。你现在要开发一个可以让管理员对用户做各种操作的功能,比如搜索、打印、获取邮件等操作。假设社交网络应用的用户都通过Person类表示:public class Person { public enum Sex { MALE, FEMALE } private String name; ...转载 2019-01-24 22:15:06 · 312 阅读 · 0 评论 -
【自学】Java核心技术卷1_6.1-6.2接口
接口的特性对类的一组需求描述,对方法制定的一套规范。 接口没有实例对象(不能new实例对象),没有实例域(对象的值), 可以定义接口变量,引用实现了接口的类的对象 可用instanceof检查一个类是否实现了某接口:if(anObject isstanceof anInterface){…} 类只能extends一个超类,但却可以implements多个接口(逗号隔开) 接口可以ex...原创 2019-01-14 16:18:29 · 288 阅读 · 0 评论 -
【自学】Java核心技术卷1_6接口、lambda表达式、内部类、代理
接口:描述类具有什么功能,并不给出每个功能的具体实现(一个类可以实现一个或多个接口,并在需要接口的地方随时使用实现了相应接口的对象) lambda表达式:表示在将来某个时间点执行的代码块 内部类:定义在另一个类的内部,内部类的方法可以访问包含它的外部类的域。主要用于设计具有相互协作关系的类集合 代理:一种实现任意接口的对象,可以用来构建系统级的工具6.1 接口接口中的所有方法自动地属于...原创 2019-01-07 21:58:09 · 312 阅读 · 0 评论 -
Eclipse快捷键和使用技巧
作者:Java我人生 原文:https://blog.youkuaiyun.com/chenleixing/article/details/44600587 1、alt+?或alt+/:自动补全代码或者提示代码这个是我最得意的快捷键组合了,尤其是当输入syso几个字符之后,2个手指轻松按下这2个键的时候,自动就补全System.out.println();了,而且eclipse默认是出现“.”进行方...转载 2018-11-26 20:05:15 · 253 阅读 · 0 评论 -
Java基本类型和包装类拆箱、装箱理解
参考博客1、博客2 基本 boolean char byte short int long float double 包装 Boolean Chara...原创 2018-11-26 22:58:38 · 501 阅读 · 0 评论 -
【自学】Head First Java 10-18章笔记
异常处理finally:try或catch有return语句时,finally也会在执行return之前执行 异常是对象,具有多态性,可只声明或catch父类来处理多个异常;为每类异常单独写多个catch块时,要从子类到父类(从小到大)排catch块 有风险方法的调用方式:try/catch;duck duck:踢皮球式处理异常,自己也声明要抛出相同异常,将捕获到的异常从自己抛出,mai...原创 2018-12-02 23:01:10 · 281 阅读 · 0 评论 -
【自学】Java核心技术卷1_3.7:输入输出
使用console输入:import java.io.Console;public class test_Console { //此处类名命名不规范,应该用骆驼命名法 public static void main(String[] args) { Console c = System.console(); String username = c....原创 2018-12-14 17:24:57 · 390 阅读 · 0 评论 -
Java编程:JDK、Eclipse、Intellij使用
Java Development Kit,JDK:java开发工具箱,程序员用于编写java程序的软件文本编辑器如Notepad中编写源代码,保存为.java格式。win+R键打开运行窗口,输入cmd,回车,进入命令行模式进入存放hello.java文件的文件夹: e:回车:进入e盘 cd java:进入java文件夹 cd hello:进入hello文件夹 javac...原创 2018-12-10 15:29:13 · 332 阅读 · 0 评论 -
【自学】Java核心技术卷1_3.8-3.10
嵌套块中重定义一个变量时,c的内层变量会覆盖外层同名变量,但java不能通过编译 Java没有goto语句,但是break可以带标签,使程序跳转到带标签的语句块末尾;还有带标签的continue,跳到与标签匹配的循环首部 Jave有for each循环:for(variable:collection) statement Java不提供运算符重载功能 Java创建数组时,长度可以是变量:i...原创 2018-12-16 11:04:03 · 210 阅读 · 0 评论 -
【自学】Java核心技术卷1_1.1-3.6
Java的特点大小写敏感 所有应用程序都必须放在class中,类名必须以字母开头,命名规范中类名以大写字母开头,由单词组合的类名每个单词首字母都大写(骆驼命名法) Java源文件最多有一个public类,且文件名必须与此公共类同名,若源文件中没有public类,则文件与任一类同名即可 源文件中必须有且仅有一个main方法,运行编译后的程序时,java虚拟机从main方法开始执行 jav...原创 2018-12-10 19:12:12 · 399 阅读 · 0 评论 -
【自学】Java核心技术卷1_4对象与类
实例instance:由类构造对象的过程称为创建类的实例 实例域instance field:对象中的数据称为实例域 方法:操纵数据的“过程”称为方法(这里是面向过程编程的“过程”) 状态:对象的实例域的值集合称为对象当前的状态(只能通过调用方法改变状态)类之间的关系:强弱程度:依赖<关联<聚合<组合<继承(尽量减弱类之间的关系,降低类间耦合) 依赖depen...原创 2018-12-24 11:28:36 · 234 阅读 · 0 评论 -
Java编程:Package包的初次使用记录
版本1:直接将要import的自定义包放在要使用它的源程序的当前目录下1、新建PackageTest项目后,先在src目录下New一个包: 2、编写要包含在这个包里的类: 3、同样在src文件夹下面New测试代码PackageTest.java,使其和要用的Employee包一起放在路径:E:\Java\PackageTest\src 4、写测试类PackageTest.ja...原创 2018-12-24 18:05:25 · 373 阅读 · 0 评论 -
【自学】Java核心技术卷1_5.1-5.5继承
继承is- a5.1类、超类、子类extend:表明正在构造的新类派生于一个已存在的类。此处已存在的类称为超类(基类、父类),新类称为子类(派生类、孩子类) 覆盖:子类的方法与超类的方法同名但不同功能。覆盖方法时,要保证返回类型的兼容性,允许子类将覆盖方法的返回类型定义为原返回类型的子类型。一定要保证覆盖方法不低于被覆盖方法的可见性。 super:要在子类覆盖超类的方法中调用超类的同名...原创 2018-12-29 18:00:52 · 391 阅读 · 0 评论 -
【自学】Java核心技术卷1_5.7 反射
参考1、参考2、参考3 反射reflectionPackage java.lang.reflect Description反射:能够分析类的能力(capabilities of classes)的程序。 反射库:提供了丰富的工具集,便于编写能够动态操纵Java代码的程序 反射是一种功能强大且复杂的机制,使用反射机制的主要是工具构造者。 反射机制可以:在运行时分析类的能力、在运...原创 2018-12-29 21:38:52 · 301 阅读 · 0 评论 -
【自学】Java核心技术卷1_5.6枚举Enum
最重要的参考博客,其他参考博客1、博客2Enumeration Calsses枚举类——实例有限且固定的类此处枚举类型名称:Size Size类型包含的枚举常量:SMALL, MEDIUM, LARGE, EXTRA_LARGE 直接使用类型名定义枚举变量:Size s=Size.SMALL; 通过关键字enum创建枚举类型在编译后事实上也是一个类类型而且该类继承自java.la...原创 2018-12-31 19:55:07 · 309 阅读 · 0 评论 -
【自学】Head First Java 1-9章笔记
开发步骤:写源文件.java、编译源文件得到字节码.class、解释器执行字节码平台无关性:java可在平台上提供由java虚拟机、类库、一些核心文件的java运行环境java源文件:最多有一个public类,并且源文件与此public类同名,若无public类则与文件中任一类同名即可java应用程序:必须有一个类含有主类public static void main(String a...原创 2018-11-25 22:42:56 · 436 阅读 · 0 评论