`
苍穹神剑
  • 浏览: 1102 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java基本点

    博客分类:
  • java
阅读更多

今天面试遇到两个问题:

1.java类加载问题

package test;

class FatherA {
	static {
		System.out.println("父类静态块");
	}
	{
		System.out.println("父类动态块1");
	}
	{
		System.out.println("父类动态块3");
	}
	{
		System.out.println("父类动态块2");
	}

	public FatherA() {
		System.out.println("父类构造函数");
	}
}

public class SonB extends FatherA{
	static {
		System.out.println("子类静态块");
	}
	{
		System.out.println("子类动态块");
	}

	public SonB() {
		System.out.println("子类构造函数");
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new SonB();
	}

}

 输出结果:

父类静态块

子类静态块

父类动态块1

父类动态块3

父类动态块2

父类构造函数

子类动态块

子类构造函数

原因分析:类加载机制,先加载父类static块,子类static块,之后加载父类动态块、构造函数,最后加载子类动态块、构造函数

 

2.参数传递问题

package test;

public class MethodParms {
	String str="abcd";
	char[] cs=new char[]{'a','b','c'};
	
	public void ex(String a,char[] b) {
		a="test";
		b[0]='s';
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		MethodParms mm=new MethodParms();
		mm.ex(mm.str, mm.cs);
		
		System.out.println(mm.str+":::");
		System.out.println(mm.cs);
	}

}

 输出结果:

abcd:::

sbc

原因分析:由于java方法的参数传递都可以看为是值传递,都会传递一份拷贝的值(引用值,数值)给函数。这里的String、char[]传递的都是引用值,这里char[]参数通过拷贝的引用可以直接修改值,而String对象是不可变的,通过拷贝的引用不能直接修改值,所有这里未变。

其他:这里String的不可变性通过final char[] value保证,而StringBuffer和StringBuider通过AbstractStringBuilder的char[] value是可变的,具体可见源码。



 

  • 大小: 39.2 KB
分享到:
评论

相关推荐

    Java基本开发环境搭建

    下面将详细说明搭建Java基本开发环境的各个步骤和知识点。 首先,JDK是整个Java开发的核心,它包含了Java运行环境(Java Runtime Environment,JRE)、Java编程语言的类库以及Java虚拟机(Java Virtual Machine,...

    Java基本常用代码示例

    下面我们将深入探讨这些标签所涵盖的Java基本知识点。 1. **数据类型与变量**: Java有两大类数据类型:基本类型(如int, double, boolean)和引用类型(如类、接口和数组)。变量是存储数据的容器,需要先声明其...

    java 知识点整理

    Java知识点整理 Java是一种广泛使用的面向对象的编程语言,它具有丰富的API(应用程序接口)和强大的功能。在Java考试中,掌握以下知识点至关重要: 1. **JAVA SE**(Java标准版)是Java的核心部分,包括基础语法...

    Java基本语法编程练习.doc

    Java 基本语法编程练习是学习 Java 语言的基础,以下是 Java 基本语法编程练习的知识点总结: 1. Java 数据类型: Java 语言中有八种基本数据类型,即 byte、short、int、long、float、double、boolean 和 char。...

    Java基本数据类型

    "Java基本数据类型" Java 中的基本数据类型是Java语言的基础,它是每一位初学者都必须要掌握的知识点。 Java 中的基本数据类型可以分为八种:整数型、浮点型、字符型、布尔型。 1. 标识符 标识符可以简单的理解...

    JAVA基本数字图像处理

    "JAVA基本数字图像处理"这个项目旨在通过Java语言实现一系列基本的图像操作,以帮助开发者理解图像处理的基本原理并掌握其实践技巧。下面将详细介绍这些知识点。 首先,我们要了解数字图像的基础。数字图像实质上是...

    JAVA核心知识点整理.zip

    java核心知识点整理,面试很有用 Java核心知识点2.JVM JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、 一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它...

    Java 数组 基本知识点以及使用

    Java 数组基本知识点以及使用 Java 数组是 Java 编程语言中的一种基本数据结构,它允许我们在一个变量中存储多个值。下面是 Java 数组的基本知识点和使用方法: 数组的声明和初始化 在 Java 中,可以使用以下两...

    java 判断点在多边形内

    射线交叉法的基本思想是从待检测点出发,向任意方向发射一条射线(通常选择水平方向),然后计算这条射线与多边形边界的交点数量。如果交点数量为奇数,则表示该点位于多边形内部;如果是偶数,则表示该点位于多边形...

    java基本构架java学习

    "Java基本构架java学习"这个主题涵盖了Java语言的核心概念和架构,是初学者和有经验开发者深入理解Java的关键。 首先,Java构架的基础是JVM(Java虚拟机),它是Java程序运行的平台。JVM负责将字节码(.class文件)...

    java_JAVA_WEB基本教程

    根据给定的文件信息,以下是从标题、描述、标签以及部分内容中提炼出的关于Java Web基本教程的关键知识点: ### Java Web基本教程概览 #### 一、Java编程语言概述 Java是一种面向对象的编程语言,它由Sun ...

    java基本试题java基本试题.doc

    文档资料"java基本试题java基本试题.doc"的内容看似是一份包含大量Java编程基础题目的文档,但实际文本中充满了重复的、无意义的字符和词组,这些内容并不符合正常的问题或知识点描述。因此,我无法直接从这部分内容...

    java知识点总结思维导图(xmind)

    这份"java知识点总结思维导图(xmind)"是为帮助学习者系统性地理解和掌握Java核心技术而精心整理的资料。思维导图作为一种有效的学习工具,能够帮助我们更好地组织和记忆信息,提高学习效率。 首先,让我们从基础...

    Java基本語法

    Java语言的前世今生、执行原理、以及与面向对象编程的关系是理解和掌握Java基本语法的重要知识点。 Java语言起源于名为Green的项目,该项目目的是利用C++开发嵌入式软件,控制消费性电子产品。然而,由于C++语言的...

    java判断某个点是否在所画多边形/圆形内

    java判断某个点是否在所画多边形或圆形内 在计算机图形学和 GIS 领域中,判断某个点是否在所画多边形或圆形内是一个常见的问题。java语言提供了多种方法来解决这个问题。本文将详细介绍java判断某个点是否在所画...

    java知识点梳理

    文档梳理了Java基本语法知识——环境搭建、数据类型、运算符、控制流、数组、Arrays类、字符串、类和对象、对象的生成与销毁、Java包&方法调用&访问控制、封装和继承、多态、继承链、抽象类和接口等等。

    Java基本语法.pdf

    根据给定文件的信息,我们可以深入探讨Java的基本语法和核心概念,包括程序结构、注释、...以上知识点覆盖了Java基本语法的核心要素,包括程序结构、注释、数据类型以及变量和常量的使用,为初学者提供了坚实的基础。

    java 单点登录源代码

    下面将详细阐述Java SSO的基本原理、实现方式以及相关知识点。 1. **SSO基本原理** SSO的核心思想是用户只需要一次登录,就能访问所有相互信任的应用系统。这通常通过共享认证信息或令牌来实现。在Java环境中,...

    java基本练习题主要给java初学者学习用的

    标题提到的"java基本练习题主要给java初学者学习用的",表明这是一系列旨在帮助初学者巩固Java基础知识的练习题目。这些练习通常会涵盖编程基础、控制结构、字符串处理等方面,这些都是Java编程的核心元素。 首先,...

    java总结大全--包括所有java基础知识点

    Java基础知识点总结 Java是一种广泛应用的编程语言,掌握Java基础知识点对于编程人员非常重要。本节将对Java基础知识点进行总结,涵盖变量、数据类型、运算符、控制流程、方法、数组、内部类、继承、多态、接口、...

Global site tag (gtag.js) - Google Analytics