上一页 1 ··· 12 13 14 15 16
摘要: 介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说明,可以对包、类、接口、字段、方法参数、局部变量等进行注解。主要作用如下: 编写文档——通过注解中标识的元数据可以生成doc文档,这是最常见的,也是java 最早提供的注解。常用的有@param @return 等 代码分析——通过注解 阅读全文
posted @ 2024-08-27 20:40 程序员Seven 阅读(61) 评论(0) 推荐(0)
摘要: 类型擦除会造成多态的冲突,而JVM的解决方法就是泛型的桥接方法。 举例 现在有这样一个泛型类: class Pair<T> { private T value; public T getValue() { return value; } public void setValue(T value) { 阅读全文
posted @ 2024-08-26 21:07 程序员Seven 阅读(362) 评论(0) 推荐(0)
摘要: 概念 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。 泛型的本质是参数化类型,即给类型指定一个参数,然后在使用时再指定此参数具体的值,那样这个类型就可以在使用时决定了。这种参数类型可以用在类、接口和 阅读全文
posted @ 2024-08-26 20:55 程序员Seven 阅读(129) 评论(0) 推荐(0)
摘要: 序列化:把对象转换为字节序列的过程称为对象的序列化. 反序列化:把字节序列恢复为对象的过程称为对象的反序列化. 什么时候会用到 当只在本地 JVM 里运行下 Java 实例,这个时候是不需要什么序列化和反序列化的,但当出现以下场景时,就需要序列化和反序列化了: 当需要将内存中的对象持久化到磁盘,数据 阅读全文
posted @ 2024-08-24 21:21 程序员Seven 阅读(493) 评论(0) 推荐(3)
摘要: static能修饰的地方 静态变量 静态变量: 又称为类变量,也就是说这个变量属于类的,类所有的实例都共享静态变量,可以直接通过类名来访问它;静态变量在内存中只存在一份。 实例变量: 每创建一个实例就会产生一个实例变量,它与该实例同生共死。 静态方法 静态方法在类加载的时候就存在了,它不依赖于任何实 阅读全文
posted @ 2024-08-23 21:01 程序员Seven 阅读(465) 评论(0) 推荐(1)
摘要: 什么是值传递和引用传递? 值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量。 引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本,并不是原对象本身,两者指向同一片内存空间。所以对引用对象进行操作会同时改变原对象。 java中不存在引用传递,只有值传递。即不存在 阅读全文
posted @ 2024-08-23 20:54 程序员Seven 阅读(64) 评论(0) 推荐(0)
摘要: 为什么会哈希冲突 我们知道,在使用Map,Set这些集合时,都会重写hashcode方法,但Java中的hashCode方法会将对象映射到一个32位的整数范围(即从-2^31 到 2^31-1)。无论输入数据多么庞大,哈希函数生成的哈希值总是落在这个有限范围内。因此是会存在hash冲突的。 无论哈希 阅读全文
posted @ 2024-08-22 20:51 程序员Seven 阅读(559) 评论(0) 推荐(0)
摘要: 这是一个经典的问题,我们先从==开始看起 == "==" 是运算符 如果比较的对象是基本数据类型,则比较的是其存储的值是否相等; 如果比较的是引用数据类型,则比较的是所指向对象的地址值是否相等(是否是同一个对象)。 Person p1 = new Person("123"); Person p2 = 阅读全文
posted @ 2024-08-22 20:42 程序员Seven 阅读(342) 评论(0) 推荐(0)
摘要: 先说结论,是对象!可以继续往下看 数组是不是对象 什么是对象?对象是类的一个实例,有状态和行为 Java对象: 软件的对象也有行为和状态 软件对象的状态称之为属性 方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成 而java中的数组具有java中其他对象的一些基本特点。比如封装了一些数据 阅读全文
posted @ 2024-08-21 21:35 程序员Seven 阅读(116) 评论(0) 推荐(0)
摘要: 先说下结论,可以自定义包名不为java.lang的String类,区别包名是可以正常使用的。 包名不为java.lang package com.seven.jvm; public final class String { /** The value is used for character st 阅读全文
posted @ 2024-08-21 21:27 程序员Seven 阅读(95) 评论(0) 推荐(0)
摘要: String, StringBuffer 和 StringBuilder 可变性 String不可变 StringBuffer 和 StringBuilder 可变 线程安全 String 不可变,因此是线程安全的 StringBuilder不是线程安全的 StringBuffer 是线程安全的,内 阅读全文
posted @ 2024-08-20 21:43 程序员Seven 阅读(55) 评论(0) 推荐(0)
摘要: 能存储多少字符,通过以下步骤来看 首先String的length方法返回是int。所以理论上长度一定不会超过int的最大值。 编译器对字符串字面量长度的限制源自Java编译器(如javac)在处理常量池时的实现。编译器源码如下,限制了字符串长度大于等于65535就会编译不通过:// src/jdk. 阅读全文
posted @ 2024-08-20 21:29 程序员Seven 阅读(151) 评论(0) 推荐(0)
摘要: Java中的String是不可变对象 在面向对象及函数编程语言中,不可变对象(英语:Immutable object)是一种对象,在被创造之后,它的状态就不可以被改变。至于状态可以被改变的对象,则被称为可变对象(英语:mutable object)。-- 来自百度百科 Java8 String源码 阅读全文
posted @ 2024-08-20 20:52 程序员Seven 阅读(80) 评论(0) 推荐(0)
摘要: 为什么浮点数 float 或 double 运算的时候会有精度丢失的风险呢? 《阿里巴巴 Java 开发手册》中提到:“浮点数之间的等值判断,基本数据类型不能用 == 来比较,包装数据类型不能用 equals 来判断”。“为了避免精度丢失,可以使用 BigDecimal 来进行浮点数的运算”。 浮点 阅读全文
posted @ 2024-08-20 20:39 程序员Seven 阅读(259) 评论(0) 推荐(0)
摘要: 面试题引入 这里引申出一个经典问题,看下面代码 Integer a = 100; Integer b = 100; System.out.println(a == b);//true Integer c = 200; Integer d = 200; System.out.println(c == 阅读全文
posted @ 2024-08-18 23:54 程序员Seven 阅读(150) 评论(0) 推荐(0)
上一页 1 ··· 12 13 14 15 16