笔试题04

构造方法三个特殊性:

* 构造方法必须具备和所在类相同的名字;

* 构造方法没有返回值类型,甚至连void都没有;

* 构造方法是在创建一个对象使用new操作符时调用的。构造方法的作用是初始化对象;

* 构造方法支持重载可以有多个同名的构造方法但要有不同的参数签名(参数类型、参数顺序、参数个数);

异常类描述

异常基类: Throwable

两大子类: Error & Exception
  - Error: 描述Java运行系统内部错误以及资源耗尽等
      - OutOfMemeoryError
      - StackOverFlowError
      - VirtumachineError

  - Exception
      - IOException
      - SQLException
      - ClassNotFoundException
      ... 
      - RuntimeException:
        - ClassCastException
        - NullPointerException
        - ArithmeticException
        - ArrayIndexOutOfBoundsException
       ... 

内存管理

  • 程序计数器是《Java虚拟机规范》中唯一没有规定OutOfMemeoryError情况的区域;
  • 直接内存不是运行时数据区的一部分但也会出现OutOfMemeoryError的情况;

值传递

class Emp{
private String username;
public Emp(String username) {
this.username = username;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Override
public String toString() {
return "Emp{" +
"username='" + username + '\'' +
'}';
}
}
public class TestDemo06 {
public static void main(String[] args) {
Emp emp = new Emp("...");
System.out.println(emp);
TestDemo06.changeObj(emp);
System.out.println(emp);
// ==========================================================================
Integer var01 = new Integer(1);
Integer var02 = var01;
System.out.println(System.identityHashCode(var01));
doSth(var01);
System.out.println(var01.intValue());
System.out.println(var02.intValue());
System.out.println(var01 == var02);
}
private static void doSth(Integer integer){
System.out.println(integer.intValue()); // 1
integer = new Integer(12);
System.out.println(System.identityHashCode(integer));
System.out.println(integer.intValue()); // 12
}
// ==========================================================================
private static void changeObj(Emp emp){
emp.setUsername("wangzz------------>");
}
}
// Emp{username='...'}
// Emp{username='wangzz------------>'}
// 328638398
// 1
// 1789550256
// 12
// 1
// 1
// true
//
// Process finished with exit code 0

Java是值传递。
值传递和引用传递最大区别在于:传入方法的实际参数是否是原值得副本。
值传递传递的实际参数是原值的副本,在方法中进行的操作不会印象原值。但是如果是对象对对象地址上对象内容操作会有印象
引用传传递的实际参数是原值,在方法中进行的操作就是原值的操作。

由权值为9,5,2,7的四个叶子节点构造一棵最优二叉树,该树的带权路径长度为:()

带权路径长度=53+23+72+91=44
给定n个权值作为n的 叶子 结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。

posted @   Felix_Openmind  阅读(30)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
历史上的今天:
2020-09-10 Javadoc使用
*{cursor: url(https://files-cdn.cnblogs.com/files/morango/fish-cursor.ico),auto;}
点击右上角即可分享
微信分享提示