![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA语法
文章平均质量分 71
JAVA语法学习
jiqiren1994
基本所有文章都是总结性质得文章,将网上大部分博主的内容整合了一下,加入了部分自己的理解,方便自己工作时查阅资料用,好处就是不用忘记了去搜各种文章。
展开
-
java 特性总结
java 7switch中添加对String类型的支持数字字面量的改进 / 数值可加下划异常处理(捕获多个异常) try-with-resources增强泛型推断JSR203 NIO2.0(AIO)新IO的支持JSR292与InvokeDynamic指令Path接口、DirectoryStream、Files、WatchService(重要接口更新)fork/join framework推荐阅读更多内容Java 7的新特性java 8推荐阅读更多内容Java 8的新特性java原创 2021-11-13 22:07:00 · 163 阅读 · 0 评论 -
Optional的常用方法
static Optional ofNullable(T value)如果为非空,返回 Optional 描述的指定值,否则返回空的 Optional。Optional map(Function<? super T,? extends U> mapper)如果有值,则对其执行调用映射函数得到返回值。如果返回值不为 null,则创建包含映射返回值的Optional作为map方法返回值,否则返回空Optional。T orElse(T other)如果存在该值,返回值, 否则返回 ot.原创 2021-11-13 17:27:33 · 211 阅读 · 0 评论 -
三元表达式自动拆箱
问题描述boolean flag = false;Integer a = null;Integer n = flag ? 1 : a;在计算三元表达式结果时,a变量自动拆箱了,因为a=null,所以造成了NPE问题。问题解决在三元表达式计算中,当第二、第三位操作数中有基本类型和对象时,对象就会拆箱为基本类型进行操作。所以如果使用了基本类型或者隐式的使用了基本类型,需要考虑NPE问题。...原创 2021-11-13 17:21:13 · 387 阅读 · 0 评论 -
反射结合泛型实现任意对象的创建
一、反射及泛型反射可以通过Class创建对象,而泛型则可以创建程序模板。二、Mybatis中的应用2.1定义mapper定义一个通用的sql,允许传入表名table,以及查询条件where,返回值List<Map<String,Object>>。public interface CommonMapper { @Select("select * from ${table} where ${where}") List<Map<String,Obje原创 2021-07-18 15:27:54 · 879 阅读 · 0 评论 -
java 8 Stream
一、什么是 StreamStream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。Stream 中文称为 “流”,通过将集合转换为这么一种叫做 “流” 的元素序列,通过声明性方式,能够对集合中的每个元素进行一系列并行或串行的流水线操作。特点:不是数据结构,不会保存数据。不会修改原来的数据源,它会将操作后的数据保存到另外一个对象中。(保留原创 2020-12-14 17:25:47 · 92 阅读 · 0 评论 -
java 数组
一、数组的定义数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们。二、数组的基本特点长度是确定的。数组一旦被创建,它的大小就是不可以改变的。其元素必须是相同类型,不允许出现混合类型。元素的类型可以是java 支持的任意类型数组类型可以是任何数据类型,包括基本类型和引用类型。数组的元素在堆内存中被分配空间,并且是连续分配的使用new 关键字对数组进行 内存的分配。每个元素都会被原创 2021-01-05 23:41:04 · 149 阅读 · 0 评论 -
java 多态
多态的情况下,子父类存在同名的成员变量或成员方法优先调用问题1.多态的情况下,子父类存在同名的成员变量时,默认访问的是父类的成员变量数据.2.多态的情况下,子父类存在同名的非静态函数的时候,默认是调用子类的成员函数.3.多态的情况下,子父类存在同名的静态函数时,默认是调用父类的成员函数.原因:java多态的实现,首先说成员变量,因为在java中,一个对象实例是存储在堆中的,而这个对象包含的内容有对象头,对象体以及对其字节,首先对象头存放的是对象运行时的数据,像是hashcode,锁标识,类型指针,原创 2021-01-10 00:56:39 · 785 阅读 · 0 评论 -
JAVA泛型学习
Java的泛型是采用擦拭法实现的;擦拭法决定了泛型:不能是基本类型,例如:int;不能获取带泛型类型的Class,例如:Pair.class;不能判断带泛型类型的类型,例如:x instanceof Pair;不能实例化T类型,例如:new T()。泛型方法要防止重复定义方法,例如:public boolean equals(T obj);子类可以获取父类的泛型类型。...原创 2021-05-12 21:10:04 · 129 阅读 · 0 评论 -
java 随机数获取
随机数获取1.Math.random()产生的随机数是 0 - 1 之间的一个 double,即 0 <= random <= 1。实现原理:当第一次调用 Math.random() 方法时,自动创建了一个伪随机数生成器,实际上用的是 new java.util.Random()。当接下来继续调用 Math.random() 方法时,就会使用这个新的伪随机数生成器。 public static double random() { return RandomNumberG原创 2021-01-26 10:57:59 · 283 阅读 · 0 评论 -
java 变量与数据类型
1.Java中的变量变量是在内存中分配的保留区域的名称。换句话说,它是一个内存位置的名称。它是一个“变化+能够”的组合,意味着它的值可以改变。1.1变量的类型局部变量:方法和代码块内定义的变量。(在定义局部变量时,必须对其进行初始化。)成员变量:类内,方法外定义的变量。(成员变量可以是java语言中任何一种数据类型)成员变量又分为实例变量和类变量(被static修饰的变量,静态变量)。1.2静态变量与实例变量区别:静态变量在内存中只有一个拷贝(节省内存), JVM只为静态分配一次内存.在加载原创 2021-01-04 22:57:41 · 203 阅读 · 0 评论 -
java 继承
什么是继承继承是Java面向对象三大特性(封装、继承、多态)之一,用extends关键字表示继承,比如有A类、B类,B类继承A类,如下写法:public class B extends A{ }//通常我们管A类叫父类,管B类叫子类。如果一个类没有写extends关键字,那这个类默认继承java.lang.Object类,Object类是所有类的祖先类。何时用继承继承通常是为了消除代码的重复、冗余,使代码更易维护。说白了就是将一些公共的属性、方法提取出来,放到一个通用的类中,然后有需要的类再继承原创 2021-01-10 00:41:27 · 92 阅读 · 0 评论 -
java 遍历集合方法总结
Map遍历方式:1、通过获取所有的key按照key来遍历//Set<Integer> set = map.keySet(); //得到所有key的集合for (Integer in : map.keySet()) { String str = map.get(in);//得到每个key多对用value的值}2、通过Map.entrySet使用iterator遍历key和valueIterator<Map.Entry<Integer, String>>原创 2021-01-26 11:37:37 · 161 阅读 · 0 评论 -
java8 日期、时间操作
Java8之前的日期和时间API,存在一些问题,最重要的就是线程安全的问题。这些问题都在Java8中的日期和时间API中得到了解决,而且Java8中的日期和时间API更加强大。传统时间格式化的线程安全问题...原创 2020-12-14 14:14:31 · 563 阅读 · 0 评论 -
反射学习
一、什么是反射反射就是Reflection,Java的反射是指程序在运行期可以拿到一个对象的所有信息。二、Class每一个类都有一个Class对象,每当编译一个新类就产生一个Class对象,基本类型 (boolean, byte, char, short, int, long, float, and double)有Class对象,数组有Class对象,就连关键字void也有Class对象(void.class)。Class对象对应着java.lang.Class类,如果说类是对象抽象和集合的话,那么原创 2021-05-12 21:35:10 · 96 阅读 · 0 评论 -
java 访问权限
一、Java中有四种访问权限,private、default(一般省略)、public、protected。private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。default:即不加任何访问修饰符,通常称为“默认访问权限“或者“包访问权限”。该模式下,只允许在同一个包中进行访问。protected: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护访问权限”。被原创 2021-01-09 23:54:07 · 121 阅读 · 0 评论 -
java 程序运行时间统计
一、简单方法1.1 System.currentTimeMillis()long start = System.currentTimeMillis();// 业务逻辑代码...long end = System.currentTimeMillis();long timeElapsed = finish - end; // 单位为毫秒System.currentTimeMillis()记录的是系统当前时间(Wall-clock Time)距离1970-1-1 00:00:00流逝的时间,单位是毫原创 2021-01-26 11:28:23 · 808 阅读 · 0 评论 -
ArrayList 学习
一、概念数组(Array)是有限个相同类型的变量所组成的有序集合,数组中的每一个变量被称为元素。数组是最为简单、最为常用的数据结构。二、ArrayList 结构ArrayList是由Object 数组,以及一个当前数组所拥有元素数量的size组成。 Object[] elementData; // non-private to simplify nested class access private int size;三、操作读取和更新都可以随机访问,时间复杂度为O(1)3.1 插原创 2021-05-23 11:07:44 · 127 阅读 · 0 评论 -
java 数值运算
一、整数运算整数类型1、Java有四种整数类型:byte、short、int和long。2、Java默认整数计算的结果是int类型。3、整数的字面量是int类型。4、若字面量超过int类型的最大值,则字面量是long类型,那么后面要用L(或l)表示该值是long类型。整数运算Java的整数运算遵循四则运算规则,可以使用任意嵌套的小括号。四则运算规则和初等数学一致。整数的数值表示不但是精确的,而且整数运算永远是精确的,即使是除法也是精确的,因为两个整数相除只能得到结果的整数部分。溢出要特别注原创 2021-01-07 12:51:08 · 1896 阅读 · 0 评论 -
java io总结
IO流的概念IO是指Input/Output,即输入和输出。以内存为中心:Input指从外部读入数据到内存,例如,把文件从磁盘读取到内存,从网络读取数据到内存等等。Output指把数据从内存输出到外部,例如,把数据从内存写入到文件,把数据从内存输出到网络等等。IO流的分类根据数据处理的不同类型分为:字节流和字符流根据数据流向不同分为:输入流和输出流字符流和字节流字符流的由来:因为数据编码的不同,而有了对字符进行高效操作的流对象,本质上其实就是对于字节流的读取时,去查了指定的码表。字原创 2021-01-18 15:15:24 · 125 阅读 · 3 评论 -
java面向对象编程
一、面向过程的编程思想面向过程编程,核心是编程二字,过程指的是解决问题的步骤,即先干什么、后干什么、再干什么、然后干什么……。面向过程可以理解为将复杂问题分解为几个步骤或者模块,是模块化的思想方法。我们平常完成的业务需求很多都是这种面向过程的开发,只需考虑将表面问题分解解决,无需考虑其中一个步骤的改变带来的影响。优点:复杂的问题流程化,进而简单化缺点:修改一个阶段,其他阶段都有可能需要作出修改,牵一发而动全身,即扩展性极差。应用:用于扩展性要求低的场景二、面向对象的编程思想Alan Kay的OO原创 2021-01-08 15:38:43 · 108 阅读 · 0 评论 -
java8 Lambda 表达式
lambda介绍λ ,希腊字母表中排序第十一位的字母,英语名称为Lambda。lambda 表达式,也可称为闭包,它是推动Java 8 发布的最重要新特性,允许把函数作为一个方法的参数(函数作为参数传递进方法中)。当需要启动一个线程去完成任务时,代码量太多了,只有run方法体才是关键。jdk8就加入了lambda表达式。public class Demo01Runnable { public static void main(String[] args) { // 匿名内部类 Runnab原创 2020-12-14 11:25:30 · 307 阅读 · 0 评论 -
java File类总结
File类概述java.io.File代表与平台无关的文件或目录。也就是说可以通过File类在Java程序中操作文件或目录。File类只能用来操作文件或目录(包括新建、删除、重命名文件和目录等操作),但不能用来访问文件中的内容。如果需要访问文件中的内容,则需要使用输入/输出流。File类的构造方法File 类的常用方法①、创建方法 1.boolean createNewFile() 不存在返回true 存在返回false 2.boolean mkdir() 创建目录,如果上原创 2021-01-18 15:56:45 · 140 阅读 · 0 评论 -
java8 stream 转换list、map、set
一、Collection, Collections, collect, Collector, CollectosCollection是Java集合的祖先接口。Collections是java.util包下的一个工具类,内涵各种处理集合的静态方法。java.util.stream.Stream#collect(java.util.stream.Collector<? superT,A,R>)是Stream的一个函数,负责收集流。java.util.stream.Collector 是一个原创 2021-01-04 22:11:46 · 4522 阅读 · 0 评论 -
java String
一、概述字符串什么是字符串?如果直接按照字面意思来理解就是多个字符连接起来组合成的字符序列。字符串的分类字符串分为可变的字符串和不可变的字符串两种。不可变的字符串:当字符串对象创建完毕之后,该对象的内容(上述的字符序列)是不能改变的,一旦内容改变就会创建一个新的字符串对象;Java中的String类的对象就是不可变的。可变的字符串:StringBuilder类和StringBuffer类的对象就是可变的;当对象创建完毕之后,该对象的内容发生改变时不会创建新的对象,也就是说对象的内容可以发生改变原创 2021-01-06 11:17:37 · 506 阅读 · 0 评论