首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Android 研究

    Java虚拟机基础——3加载机制

    本片文章内容如下: 1、加载器 2、""的生命周期 3、一个载入过程 4、""结束生命周期 5、new 一个对象过程 6、总结 一、加载器 (一)、概述 首先来看一下java程序的执行过程 (三)、委派模式 请参考Android插件化基础1-----加载SD上APK中的"双亲委托" 二、一个生命周期 从被加载到虚拟机内存中开始,直到卸载出内存为止,它的整个生命周期包括了:加载、验证、准备 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构 3、创建Class实例 在Java堆中生成一个代表这个java.lang.Class对象,作为方法区这些数据的访问入口。 2、解析或者接口 ? ? 解析或者接口2.png 3、解析字段 ? 4、解析方法 ? 5、解析接口方法 ? 2、当通过反射机制对进行调用时,如果类未初始化,则需要先初始化。 3、当初始化一个时,如果其父未初始化,先初始化父

    73550发布于 2018-10-10
  • 来自专栏归思君的技术博客

    Java基础知识3-和对象(1)

    变量 又叫静态变量,是一种用static关键字修饰的特殊成员变量。在加载的时候就分配存储空间。
    所有由这个生成的对象都共用这个变量。 实例方法 每个实例方法都有一个返回值类型,一个签名(指定方法名) 构造方法 每个Java至少含有一个构造方法以创建一个对象的标识,构造方法的作用是初始化实例变量。 若未在中写构造方法,系统会提供一个默认的无参构造方法,如果写了,系统将不会提供(建议自己写个无参的构造方法) 作用:Java程序在执行子类的构造方法之前,如果没有用super()来调用父特定的构造方法 由构造(construct)对象的过程叫做创建的实例(instance)。 注意:在Java中只有值传递 关于形参和实参,这篇文章讲的不错 https://yq.aliyun.com/articles/642055# 面向对象的三大特性 封装 继承 多态 封装 作用:隐藏了具体实现细节

    30460编辑于 2023-10-16
  • 来自专栏微信公号【Java技术江湖】

    Java基础3:深入理解String及包装

    具体代码在我的GitHub中可以找到 https://github.com/h2pl/MyTech 文章首发于我的个人博客: https://h2pl.github.io/2018/04/23/javase3 java.lang.System.arraycopy()方法在Java代码里声明为一个native方法。所以最naïve的实现方式就是通过JNI调用JVM里的native代码来实现。 翻开JDK源码,java.lang.String起手前三行,是这样写的: public final class String implements java.io.Serializable, Comparable String里的value用final修饰,只是说stack里的这个叫value的引用地址不可变。没有说堆里array本身数据不可变。 3 final修饰的char数组保证了char数组的引用不可变。但是可以通过char[0] = 'a'来修改值。

    51600发布于 2019-04-06
  • 来自专栏程序员互动联盟

    java基础】匿名

    昨天后台的一个小伙伴提到了,java里面的匿名,这个概念在平常java码代码的时候用的特别多,所以找了一篇介绍表述比较清晰的文章分享给大家,能极大的简化代码量,是java编码基本功,属于必须掌握的范畴 然后实现了Child的一个实例,将其向上转型为Person的引用 但是,如果此处的Child只使用一次,那么将其编写为独立的一个岂不是很麻烦? 中的方法在大括号中实现了 这样便可以省略一个的书写 并且,匿名内部类还能用于接口上 实例3:在接口上使用匿名内部类 interface Person { public void eat();} System.out.print(i + " "); } } }; t.start(); }} 运行结果:1 2 3 ; i++) { System.out.print(i + " "); } } }; Thread t = new Thread(r); t.start(); } } 运行结果:1 2 3

    90270发布于 2018-03-16
  • 来自专栏全栈程序员必看

    JAVA基础—11.29

    :描述一段信息 语法:使用双引号或者单引号包含的多个字符 如:name = “DAMU” (2)整数(int):描述一个整数数据 语法:数据直接使用数字表示 如:weight = 80 (3) float print(type(flag))#bool print(type(result))#complex print(result.real,result.imag)#打印实部与虚部,默认浮点型 3. heros[2])#后羿马超 #:可以进行范围性查询,集合左闭右开,索引可以取到最小值索引,但是取不到最大值索引 print(heros[1:2])#后羿,类型为list print(heros[1:3] (11) –> 字符串:“11” 11 转换:float(11)–> 浮点数:11.0 11 转换:bool(11) –> 布尔类型:True 0 转换:bool(0)–> 布尔类型:False (3) print("穿着%d号球衣的%s身高%.3f公分!"%(player_num,player_name,player_height))#穿着24号球衣的科比身高198.001公分!

    59630发布于 2021-09-26
  • 来自专栏闻道于事

    Java基础

    Java基础库 使用Scanner获得键盘输入: public class ScannerKeyBoardTest { public static void main(String[] args = "Java"; String s4 = "Java"; // s3和s4是相同的字符串对象,所以它们的identityHashCode值相同 System.out.println 为了避免程序中对于double运算的繁琐,可以以BigDecimal基础定义一个Arith工具: public class Arith { // 默认除法运算精度 private static Java 8专门新增了一个java.time包,该包下包含了如下常用:  Clock、Duration、LocalDate、LocalTime、LocalDateTime、MonthDay、Year、 的基础上添加5小时4分钟 Instant instant4 = instant3.plus(Duration .ofHours(5).plusMinutes(4)

    2.4K60发布于 2018-07-04
  • 来自专栏Golang开发

    Java基础——&对象

    的定义 [修饰符] class 名{ } 定义的注意: (1)如果类使用了public 修饰符 必须保证当前的文件名和当前相同 (2) 名使用名称表示 表示某一事物 首字母大写 public 一个引用变量没有通过new分配内存空间,这个对象就是空对象,Java使用关键字null表示空对象。 当调用一个空对象的实例变量或实例方法时,会抛出空指针异常NullPointException String str = null; System.out.println(str.length());//java.lang.NullPointerException 当一个对象被创建后,对象保存在堆内存中,Java程序不允许直接访问堆内存的对象,不管是数组还是对象,当程序访问引用变量的成员值或者方法时,实际上是访问引用变量的所指向的数组或者对象的成员变量或者方法。 对于引用数据类型 比较的是 内存的中的地址,每次使用new关键字 都表示的堆新开辟了一块内存空间地址值不同,如果对象拥有完全相同的数据 equals()方法 (3)对象的生命周期 每次使用new

    63420发布于 2019-05-28
  • 来自专栏AI星球

    Java基础--容器

    面试官:Java的容器你有什么了解吗? -:额,没有用过.... 面试官:你肯定用过,但你没有注意过.... -:应该是吧.... 你知道什么是容器吗? Java容器可以说是增强程序员编程能力的基本工具,本文将与您一起理解容器,看完之后你也许会恍然大悟,这原来就是容器啊,一起避免面试时的尴尬!!!! 数组显然只能创建固定长度的对象,为了使程序变得更加灵活与高效,Java库提供了一套完整的容器,具备完善的方法来解决上述问题。 2.容器的类别 ? 3. 容器中的七大接口 1.Collection接口 2.Map接口 3.Set接口 4.List接口 5.Queue接口 6.Iterator接口 7.Comparable接口 其中List

    83730发布于 2018-09-12
  • 来自专栏迁移内容

    Java基础Java与对象

    ---- 上一篇内容:Java基础Java流程控制 下一篇内容:Java基础Java面向对象 更多知识学习:全网最全的 Java 技术栈内容梳理(持续更新中) ---- 文章目录 一、面向对象程序设计概述 1、 2、对象 3之间的关系 二、静态域与静态方法 1、关键字static 2、关键字final 3、静态域与静态方法 三、构造器 1、构造方法的特点 2、 构造方法的重载 3、子父中的构造方法 Java是完全面向对象的,必须熟悉OOP才能够编写Java程序。面向对象的程序是由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。 1、 (class)是构造对象的模板或蓝图。 标准的 Java 库提供了几千个,可以用于用户界面设计、日期、日历和网络程序设计。尽管如此,还是需要在 Java 程序中创建一些自己的,以便描述应用程序所对应的问题域中的对象。 3、静态域与静态方法 如果将域定义为static,每个中只有一个这样的域。而每一个对象对于所有的实例域却都有自己的一份拷贝。 Ps:在绝大多数的面向对象程序设计语言中,静态域被称为域。

    66040编辑于 2022-12-02
  • 来自专栏阿Q说代码

    Java基础——根与String

    转眼间我们已经工作完一周了,这周开始阿Q要不定时更新知识了,先让我们来学习一下java中的Object与string吧。 Object API:Application Programming Interface 应用程序编程接口,Java API就是Java提供给我们使用的,这些将底层的实现封装了起来,我们不需要关心这些是如何实现的 = new String(arr2,2,3); //将arr2字节数组从2索引开始转换3个 System.out.println(s3); //打印出:cde char[] arr3 = {'a','b','c','d','e'}; //将字符数组转换成字符串 String s4 = new String(arr3); System.out.println(s4); //打印出:abdcde String s5 = new String(arr3,1,3); //将arr3

    64720发布于 2021-05-13
  • 来自专栏指点的专栏

    Java 机制(3)---- 文件结构

    前言 ​ 在上一篇文章中我们一起来看了一下 Java 虚拟机的加载过程,包括虚拟机加载、验证、准备、解析和初始化 5 个大步骤,同时我们还讨论了 Java 虚拟机加载时采用的双亲委派模型思想。 解析 .class 文件 ​ 我们都知道一个 Java (.java)文件在被 Java 编译器(javac) 编译过后,如果语法没有错误,则会生成一个对应的 .class 文件,这个 .class 有了这个基础之后,我们来通过例子来理解上面表格的数据含义,新建一个 ClassContent : public class ClassContent { public static final 浮点型常量、复杂对象类型常量…)下表列举了所有常量池中的项目可能出现的类型: 类型 标志 含义 CONSTANT_Utf8_info 1 UTF-8 编码的字符串 CONSTANT_Integer_info 3 含义 u1 tag 常量类型,值为 12 u2 name_index 指向该字段或者方法名称的常量项的索引 u2 descibe_index 指向该字段或者方法描述符的常量项的索引 好了,有了上面的基础之后

    90020发布于 2019-07-01
  • 来自专栏springboot

    Java基础(十二):枚举

    Java基础系列文章 Java基础(一):语言概述 Java基础(二):原码、反码、补码及进制之间的运算 Java基础(三):数据类型与进制 Java基础(四):逻辑运算符和位运算符 Java基础(五) :流程控制语句 Java基础(六):数组 Java基础(七):面向对象编程 Java基础(八):封装、继承、多态性 Java基础(九):Object 的使用 Java基础(十):关键字static、代码块 、关键字final Java基础(十一):抽象、接口、内部类 Java基础(十二):枚举 Java基础(十三):注解(Annotation) Java基础(十四):包装 Java基础(十五):异常处理 Java基础(十六):String的常用API Java基础(十七):日期时间API Java基础(十八):java比较器、系统相关、数学相关 Java基础(十九):集合框架 Java基础(二十) :泛型 Java基础(二十一):集合源码 Java基础(二十二):File与IO流 Java基础(二十三):反射机制 Java基础(二十四):网络编程 Java基础(二十五):Lambda表达式、方法引用

    46010编辑于 2025-01-21
  • 来自专栏rikka

    Java 基础(六) Object

    Java 中,这个“根”就是 Object 。 Object 中包含有: toString() equals() 两个方法,前者可以打印对象的信息(可以在子类中具体实现);后者判断是否管理着同一个对象 (默认实现为 ==) 。 比如,要实现只要 CD 中 artist 成员相同,equals()就返回 true,需要这样写: @Override public boolean equals(Object obj) {

    29310编辑于 2022-01-19
  • 来自专栏学习

    Java基础语法】String

    ,而字 符串应用又非常广泛,因此Java语言专门提供了 String 。   new String(arr); System.out.println(s3); } String 提供的构造方式非常多,常用的就以下三种: 1.使用常量串构造 ); System.out.println(str.substring(0, 5)); 输出结果: hello world  注意:在java final 修饰表明该类不想被继承, final 修饰引用类型表明该引用变量不能引用其他对象,但是其引用对象中的内容是可以修改的 。 3.总结 String的方法小编在这里列举了很多,如果还有,希望各位uu在评论区提出宝贵意见。 制作不易,麻烦给小编一个小小的赞吧。

    34010编辑于 2024-09-24
  • 来自专栏springboot

    Java基础(十四):包装

    Java基础系列文章 Java基础(一):语言概述 Java基础(二):原码、反码、补码及进制之间的运算 Java基础(三):数据类型与进制 Java基础(四):逻辑运算符和位运算符 Java基础(五) :流程控制语句 Java基础(六):数组 Java基础(七):面向对象编程 Java基础(八):封装、继承、多态性 Java基础(九):Object 的使用 Java基础(十):关键字static、代码块 、关键字final Java基础(十一):抽象、接口、内部类 Java基础(十二):枚举 Java基础(十三):注解(Annotation) Java基础(十四):包装 Java基础(十五):异常处理 Java基础(十六):String的常用API Java基础(十七):日期时间API Java基础(十八):java比较器、系统相关、数学相关 Java基础(十九):集合框架 Java基础(二十) :泛型 Java基础(二十一):集合源码 Java基础(二十二):File与IO流 Java基础(二十三):反射机制 Java基础(二十四):网络编程 Java基础(二十五):Lambda表达式、方法引用

    26810编辑于 2025-01-21
  • 来自专栏全栈开发日记

    Java基础】方法、、对象

    Java语言中,方法大多用于处理一些数据并得到结果,其包括以下几种要素: 修饰符:用于限定方法的权限,常用的有public、private、static。 方法的重载 Java语言规定,在同一个中,允许出现同名的方法,只要方法的参数列表不同即可,这就是方法的重载。 参数列表不同,指的是个数、顺序或数据类型不同。 方法的重写 Override 子类中如果出现了与父一模一样的方法时,子类会重写父的方法。方法声明要与父相同,而且修饰权限不能比父更低。 此处内容在后期讲解继承的时候会再次详解。 是什么?生活中的解释就是由一些具有共同特征的个体组成的一个群体,比如人类。在Java中也是如此,更加专业的说法是描述一对象的行为和状态。 在Java语言中存在一些提前由jdk开发者定义好的,我们可以直接导入调用,比如String等等。当然,我们也可以自定义。 自定义即是对现实中事物的描述,描述事物的属性方法。

    58710编辑于 2022-05-12
  • 来自专栏cwl_Java

    Java基础-常用(三)

    本文链接:https://blog.csdn.net/weixin_42528266/article/details/102971807 Math 包含了常见的数学运算函数。 (枚举实质上还是!而每个被枚举的成 员实质就是一个枚举类型的实例,他们默认都是public static final的。可以直接通过枚举 类型名直接使用它们。) 强烈建议当你需要定义一组常量时,使用枚举类型 尽量不要使用枚举的高级特性,事实上高级特性都可以使用普通来实现,没有必要引 入复杂性! File 文件和目录路径名的抽象表示形式。 TestObject.java"); File f2 = new File("d:/src3"); File f3 = new File(f2,"TestThis.java "); File f4 = new File(f2,"TestFile666.java"); File f5 = new File("d:/src3/aa/bb/cc/ee

    35710发布于 2019-11-12
  • 来自专栏cwl_Java

    Java基础-常用Random

    本文链接:https://blog.csdn.net/weixin_42528266/article/details/103275354 3.1 什么是Random 此类的实例用于生成伪随机数。 例如,以下代码使用户能够得到一个随机数: Random r = new Random(); int i = r.nextInt(); 3.2 Random使用步骤 查看 java.util.Random 查看成员方法 public int nextInt(int n) 返回一个伪随机数,范围在[0,n) 之间的int 值 使用Random,完成生成3个10以内的随机整数的操作,代码如下: ?

    63510发布于 2019-11-27
  • 来自专栏FutureTester

    Java基础学习-Scanner

    Scanner 的作用是用来获取用户的输入 前提: import java.util.Scanner; 创建文件扫描器对象,System.in表示的是标准输入 (装饰者模式????

    36063编辑于 2021-12-12
  • 来自专栏cwl_Java

    Java基础-常用ArrayList

    为了解决这个问题,Java提供了另一个容器java.util.ArrayList ,让我们可以更便捷的存储和操作对象数据 4.2 什么是ArrayList java.util.ArrayList 是大小可变的数组的实现 4.3 ArrayList使用步骤 查看 java.util.ArrayList<E> 该类需要 import导入使后使用。 <E> 表示一种指定的数据类型,叫做泛型。 使用ArrayList,存储三个字符串元素,代码如下: public class Test02StudentArrayList { public static void main(String[] ArrayList<String> list = new ArrayList<>(); //创建学生对象 String s1 = "曹操"; String s2 = "刘备"; String s3 打印学生ArrayList集合System.out.println(list); //把学生对象作为元素添加到集合list.add(s1); list.add(s2); list.add(s3)

    74010发布于 2019-11-27
领券