今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。
咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~
在计算机科学中,抽象语法树是源代码语法结构的一种抽象表示,它以树状的形式表现编程语言的语法结构,树上的每个节点都对应为源代码中的一种语法结构。抽象语法树可以说是静态代码分析中最常用的,也是最核心的技术之一,通过抽象语法树可以很方便构建模型,判断源码中是否存在缺陷特征。
Kotlin 跟 Java 可以无缝衔接,因此 Kotlin 能够使用 Java 的反射机制。另外,Kotlin 也有自己的反射机制,需要额外地引入 kotlin-reflect.jar。
13 Java 9 之后,String 底层为什么使用 byte[],而不是 char[]?
Java中的反射机制,使得我们可以在运行期获取Java类的字节码文件中的构造函数,成员变量,成员函数等信息。这一特性使得反射机制被常常用在框架中,想要比较系统的了解Kotlin中的反射,先从Java的反射说起。
Spring Cloud Tencent 是腾讯开源的一站式微服务解决方案。SCT实现了Spring Cloud 标准微服务 SPI,开发者可以基于 Spring Cloud Tencent 快速开发 Spring Cloud 云原生分布式应用。
这几天在尝试手撸一个类似Lombok的注解式代码生成工具,用过Lombok的小伙伴知道,Lombok可以通过注解自动帮我们生产equals()和hashCode()方法,因此我也想实现这个功能,但是随着工作的深入,我发现其实自己对于equals()和hashCode()的理解,也处在一个很低级的阶段。
回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下次再想使用这些数据,可是已经没有了。那怎么办呢?能不能把运算完的数据都保存下来,下次程序启动的时候,再把这些数据读出来继续使用呢?其实要把数据持久化存储,就需要把内存中的数据存储到内存以外的其他持久化设备(硬盘、光盘、U盘等)上
常规的继承图都是将顶级类设置在页面的顶部,然后逐渐向下,所以将子类对象看作是父类对象被称为向上转型。由于向上转型是从一个较具体的类到较抽象的类的转换,所以它总是安全的。
在过去的几天里,你已经学会了一些java的语言特性以及面向对象思想,今天猿人工厂君,要带你完成一个华丽的转身变成一个——
Java API:Object class 首先简单的介绍一下Object类。 java.lang.Object java.lang包子使用的时候,不用显示导入,由编译器自动导入。 Objec(即对象类)是JDK1.0就出现的,是类层次结构的根,是Java中的顶级父类,Java中所有的类都默认直接或者间接的继承Object类。Objec是Java中唯一没有父类的类,任何一个类的对象都可以用Object对象接收。如下: //如下操作都是可以的。 Object o1=new Objec
伴随 lambda表达式、streams 以及一系列小优化,Java 8 推出了全新的日期时间API。
在Java这种强类型语言中类型转换、类型判断是经常遇到的。今天就细数一下Java中类型判断的方法方式。
本文将介绍 Java 中 Integer 缓存的相关知识。这是 Java 5 中引入的一个有助于节省内存、提高性能的特性。首先看一个使用 Integer 的示例代码,展示了 Integer 的缓存行为。接着我们将学习这种实现的原因和目的。你可以先猜猜下面 Java 程序的输出结果。很明显,这里有一些小陷阱,这也是我们写这篇文章的原因。
Java14 中预览的新特性叫做 Record,在 Java 中,Record 是一种特殊类型的 Java 类。可用来创建不可变类,语法 简短。参考JEP 395. Jackson 2.12 支持 Record 类
随着企业客户关系管理(CRM)系统的普及,权限管理成为了系统安全的重要环节。在CRM系统中,我们有时需要设置部分用户账号对某个路径进行读取、写入或执行操作权限。为了实现这一功能,我们需要先判断文件路径是目录还是文件。本文将介绍如何使用Java实现这一功能。
在Java编程中,Object类是所有类的基类,它提供了一些基本的方法来操作对象。其中,equals()和hashCode()是两个重要的方法,它们在处理对象比较和哈希码计算方面具有关键作用。本文将深入探讨这两个方法的联系以及它们在Java编程中的应用。
Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。注解是结合反射来运行的,注解相当于一个标识,不做具体的操作,具体操作是由反射来完成的。
之前的Java基础系列中讨论了Java最核心的概念,特别是面向对象的基础。在Java进阶中,我将对Java基础进行补充,并转向应用层面。 大部分编程语言都能够处理字符串(String)。字符串是有序的字符集合,比如"Hello World!"。在Java中,字符串被存储为String类对象。调用字符串对象的方法,可以实现字符串相关的操作。 String类包含在java.lang包中。这个包会在Java启动的时候自动import,所以可以当做一个内置类(built-in class)。我们不需要显式的使用im
> https://www.sczyh30.com/posts/Java/java-reflection-1/ ? 排版有点点崩嘿 因为本人最近正筹备Samsara框架的开发,而其中的IOC部分非常
程序计数器,虚拟机栈和本地方法栈 首先我们先来看下垃圾回收中不会管理到的内存区域,在Java虚拟机的运行时数据区我们可以看到,程序计数器,虚拟机栈,本地方法栈这三个地方是比较特别的。这个三个部分的特点就是线程私有的,它们随着线程的创建而诞生,也因线程的结束而灭亡。栈中的栈帧随着方法的进入和退出会有条不絮的执行着进栈和出栈。每一个栈帧中分配多少内存,基本上是在类结构确认下来的时候就已知的,因此这几个区域的内存分配和回收都具备确定性,在这几个区域内就不需要过多考虑回收的问题,因为方法结束或者线程结束,内存自然
重写equals方法 1. 判断两个对象是不是同一个对象。如果调用方法的类对象和传入参数类对象 地址一致,那就是同一个对象,返回true,搞定!!!
java基础学习_IO流01_异常、File类_day19总结 ============================================================================= ============================================================================= 涉及到的知识点有: 1:异常(理解) (0)讲解IO流之前为什么先讲解异常和File类呢? (1)
本文讲解了 Java 中常用类 Object 的语法、使用说明和应用场景,并给出了样例代码。
Java中有一个不太常用的关键字assert,是jdk1.4中加入的,平时开发中见的很少,不过在一些框架的源码里面的测试类里面,出现过不少它的踪迹。
Java14 中预览的新特性叫做 Record,在 Java 中,Record 是一种特殊类型的 Java 类。可用来创建不可变类,语法
反射的核心是 JVM 在运行时才动态加载类或调用方法/访问属性,它不需要事先(写代码的时候或编译期)知道运行对象是谁。
概述 我们知道在开发工程的时候jsp文件是即修改即生效的。Tomcat jsp热部署的实现原理是每个JSP页面从上次访问到下次访问总是有默认几秒的缓存时间的,也就说并不是严格的即修改即生效,tocmat7默认是有4秒的缓存延迟的。这个默认的缓存延迟是在类 EmbeddedServletOptions 的 private intmodificationTestInterval = 4; 这个属性定义的。如果过了4秒缓存时间即失效,这个时候tomcat就会读取jsp的modified时间戳和work目录下编译好
clone 方法的用法是对象的浅拷贝和深拷贝,clone是浅拷贝是对基本类型的值传递,对引用类型进行引用类型般的拷贝。深拷贝并拷贝对象的所有属性,并拷贝属性所指向的动态分配内存。实现深拷贝的方法有:1. 重写clone方法,对其内部的引用类型再进行clone. 2.通过序列化实现深拷贝,将拷贝的对象写入内存的字节流中,然后在读出转换为对象。新对象和原对象不存在地址的共享,所以实现深拷贝。3. 可以采用反射来实现深拷贝,迭代的依次拿到字段,并给新对象赋值。
Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入。Object类没有定义属性,一共有13个方法:
点击关注公众号,Java干货及时送达 工具类乱象 最近在检查代码时,发现有的同事喜欢用 isEmpty,有的同事喜欢用 isBlank,而且大家用的还不是同一个工具包中的,甚至还有自己手写 String 工具类的,天呀,我真是醉了…… 你们公司是否也有这样的情况呢?别说没有,我真不信! 说到这个事情,最近还有个工作 3 年的同事问我 isEmpty 和 isBlank 的区别,好吧,今天就展开讲下。 首先,这两个方法用的都是工具类 StringUtils 里面的方法,都是用来判断字符串是否为空的,而这个工
首先要知道我们所学习的Java语言是一个完全面向对象的语言,而这种语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,我们就必须把这多个对象进行存储。
在过往的内容中,我们讲了不少的Java关键字,比如final、static、this、super等等,Java中的关键字非常之多,下图是整理的关键字集合
最近有同学在做 APM 链路监控发现了一个诡异的类被加载的问题,没有被调用到的函数里面用到的类,居然触发了类加载,于是结合 JVM 的源码做了一下分析,过程如下:
本文讲解了 Java 中常用类 Scanner 的语法、使用说明和应用场景,并给出了样例代码。
为什么n3== n4 是false呢?由于包装类的缓存机制。包装类的比较用equals去判断。最推荐的还是用工具类去判断。例如上面的列子如果n3=null的话n3.equals(n4)这时候就会抛出npe了。如果用工具类的话就不会存在这种情况。总之一句话判断相等如果不愿意去判空(偷懒、代码也不好看)就借助工具类。合理使用工具类可以使你的代码减少不必要的npe。
Java中所有类的基类!!! Java中所有的类都是间接或者直接继承Object类。 Object类的引用数据类型变量可以保存Java中任意数据类型空间的首地址。
Class类的实例表示java应用运行时的类(class and enum)或接口(interface and annotation)(每个java类运行时都在JVM里表现为一个class对象,可通过类名.class, 类型.getClass(), Class.forName(“类名”)等方法获取class对象)。数组同样也被映射为为class 对象的一个类,所有具有相同元素类型和维数的数组都共享该 Class 对象。基本类型boolean,byte,char,short,int,long,float,double和关键字void同样表现为 class 对象。
在Java里面所有的类都直接或者间接的继承了java.lang.Object类,Object类里面提供了11个方法,如下: 这里面我们常用的方法有三个: toString方法,相信用过Java的人都不会陌生,默认打印的是:类名@十六进制的hashCode,源码中定义如下: 在经过重写后,我们可以打印一个class的所有属性,这样在打印log或调试时比较方便。 下面重点介绍下hashCode和equals方法: (1)equals方法,在JDK默认的情况下比较的是对象的内存地址,源码如下: (2)hashc
Java 泛型的参数只可以代表类,不能代表个别对象。由于 Java 泛型的类型参数的实际类型在编译时会被消除,所以无法在运行时得知其类型参数的类型。Java 编译器在编译泛型时会自动加入类型转换的编码,故运行速度不会因为使用泛型而加快。
被 final 修饰不可变的是变量的引用,而不是引用指向的内容, 引用指向的内容是可以改变的
反射 (Reflection) 是 Java 的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性。
领取专属 10元无门槛券
手把手带您无忧上云