Java
热情的rhew
小白小白
展开
-
注解是个啥
注解public @interface Range{ int min() default 0; int max() default 255;}注解分为3类: 编译使用的注解 @Override 让编译器检查方法是否实现覆写 @SuppressWarnings 告诉编译器忽略此处代码产生的警告 由工具处理.class文件使用的注解 在加载Class的时候,对Class做动态修改 在程序运行期能够读取的...原创 2021-01-31 17:25:33 · 145 阅读 · 0 评论 -
On Java8 读书笔记(九)
Stream APIJava8支持了流式编程流创建(1)从Collection和数组获得Collection.stream() Collection.parallelStream() Arrays.stream(T array) or Stream.of()(2)从BufferedReader获得java.io.BufferedReader.lines()(3)静态工厂java.util.stream.IntStream.range() java.nio.file.File原创 2020-11-28 14:23:50 · 118 阅读 · 0 评论 -
On Java8 读书笔记(八)
程序 = 数据结构 + 算法数据结构储存在什么地方? 复杂的数据结构怎么存储?java.util库提供了一套相当完整的集合类(collection classes)来解决这个问题,其中基本的类型有List、Set、Queue和Map。这些类型也被称作容器类(container classes),但我将使用Java类库使用的术语。集合提供了完善的方法来保存对象,可以使用这些工具来解决大量的问题。泛型类型安全的集合Java泛型设计原则:只要在编译时期没...原创 2020-11-16 08:15:55 · 149 阅读 · 0 评论 -
学到ArrayList.forEach(System.out::println)我人傻了
运行以下代码: public static void main(String[] args) { List<Object> list = new ArrayList<>(); for (int i = 0; i < 10; i++) { list.add(i); } list.forEach(System.out::println);//学习这句话 }结果:0原创 2020-11-12 15:00:09 · 2730 阅读 · 5 评论 -
On Java8 读书笔记(七)
接口和抽象类提供了一种将接口与实现分离的更加结构化的方法接口是对行为的抽象,他是抽象方法的集合接口不能被实例化,所有成员默认被public static final所修饰接口中所有方法要么是抽象方法,要么是静态方法抽象类和接口一样不能被实例化抽象类中可以有一个或多个抽象方法,也可以不含有抽象方法抽象类是对共有方法实现或着共有成员变量的抽取,主要通过继承的方式用于代码重用注意:java8开始 支持 default methodjava9开始 支持 priv...原创 2020-11-09 22:56:32 · 195 阅读 · 0 评论 -
On Java8 读书笔记(六)
多态多态是面向对象编程语言中,继数据抽象和继承之外的第三个重要特性。1.多态是同一个行为具有多个不同表现形式或形态的能力。2.多态就是同一个接口,使用不同的实例而执行不同操作,如图所示:3.多态性是对象多种表现形式的体现。多态的实现方式方式一:重写方式二:接口方式三:抽象类和抽象方法面试:编译时多态(重写) 运行时多态(继承) JVM方法区 invokeVirtual指令 方法...原创 2020-11-07 19:03:18 · 111 阅读 · 0 评论 -
On Java8 读书笔记(五)
复用代码复用是面向对象编程(OOP)最具魅力的原因之一。组合 继承组合使用:你仅需要把对象的引用(object references)放置在一个新的类里,这就使用了组合。初始化引用有四种方法:当对象被定义时。这意味着它们总是在调用构造函数之前初始化。 在该类的构造函数中。 在实际使用对象之前。这通常称为延迟初始化。在对象创建开销大且不需要每次都创建对象的情况下,它可以减少开销。 使用实例初始化。继承使用:你可以在类主体的左大括号前的代码中声明这一点,使用关键字.原创 2020-11-07 18:11:05 · 104 阅读 · 0 评论 -
On Java8 读书笔记(四)
对象的初始化和清理"不安全"的编程是造成编程代价昂贵的罪魁祸首之一。有两个安全性问题:初始化和清理。初始化在java中利用构造器初始化无参构造器(默认):一旦你显式地定义了构造器(无论有参还是无参),编译器就不会自动为你创建无参构造器。通过this关键字,在构造器中调用构造器创建一个对象时,内存被分配,构造器被调用。构造器保证了对象在你使用它之前进行了正确的初始化。方法重载(Overloading)的定义:如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方法是另.原创 2020-11-06 10:25:06 · 144 阅读 · 0 评论 -
On Java8 读书笔记(三)
Java运算符优先级运算符的优先级决定了存在多个运算符时一个表达式各部分的运算顺序。Java 对运算顺序作出了特别的规定。其中,最简单的规则就是乘法和除法在加法和减法之前完成。程序员经常都会忘记其他优先级规则,所以应该用括号明确规定运算顺序。赋值 =算术运算符 + - * / %一元加减运算符 + -递增和递减 i++ ++i i-- --i关系运算符 <, >, <=,>=, ==, !=逻辑运算符 && ,|| ,!短路(.原创 2020-11-05 19:46:11 · 115 阅读 · 0 评论 -
On Java8 读书笔记(二)
思想:Java 中万物(几乎)皆对象原创 2020-11-03 20:33:23 · 143 阅读 · 0 评论 -
On Java8 读书笔记(一)
Java的版本问题当每次学习Java时,这么多版本从哪里开始学起呢?从Java 8发布之后:6个月更新一次;授权、更新和支持的变化(授权收费),以及JDK的获取途径等。在此之上还有语言变化,包括那些Java 9中引入的主要变化。变化多的让人头晕目眩,目的是为了给世界上最流行的语言提供高质量、频繁且在计划内的更新,同时让负责该语言的人能够持续做下去。当这个世界上最流行的语言不再频繁更新,可能就是他开始没落的开始。我们需要理解,这些改变可能会影响你的应用程序和组织,通过学习如何接受这些变化,最终原创 2020-11-02 16:25:39 · 620 阅读 · 1 评论 -
tk.mybatis插入数据返回主键
首先你得基本会使用tk通用mapper了(一看就会)1.你想要返回主键,你的数据中的主键必须是自增的,比如常用的自增id(mysql)2.在你的实体类主键的上面加入 @Id @GeneratedValue(generator = "JDBC") private int id;3.在dao中,@Option千万不能忘了 @Options(useGeneratedKeys=true,keyProperty="id",keyColumn="id") @Insert(原创 2020-06-24 15:40:45 · 3488 阅读 · 6 评论 -
BufferedReader读取TXT文件中数值,并输出最大值
BufferedReader读取TXT文件中数值,并输出最大值1.题目txt文件中数字的读取,并输出最大值输出最大值922.BufferedReader 介绍BufferedReader 是缓冲字符输入流。它继承于Reader。BufferedReader 的作用是为其他字符输入流添加一些缓冲功能。BufferedReader 函数列表:BufferedRe...原创 2018-12-11 13:37:02 · 2837 阅读 · 0 评论