1.
public class BoxAndUnbox {

/**
* @param args
*/
public static void main(String[] args) {
int value=100;

Integer obj=value; //装箱

int result=obj*2; //拆箱

}

}

创建了一个value 并定义了相关变量

public class ClassAndObjectTest
{

public static void main(String[] args)
{
//创建类的实例,定义一个对象变量引用这一实例
MyClass obj = new MyClass();
//通过对象变量调用类的公有方法
obj.myMethod("Hello");
//给属性赋值
obj.setValue(100);
//输出属性的当前值
System.out.println(obj.getValue());
//直接访问对象公有字段
obj.Information = "Information";
//输出对象公有字段的当前值
System.out.println(obj.Information);
}
}

/**
* 自定义Java类的示例
*/
class MyClass
{
// 公有字段
public String Information = "";

// 自定义公有Java实例方法
public void myMethod(String argu)
{
System.out.println(argu);
}

// 定义属性:私有字段+get方法+set方法
private int value;
public int getValue()
{
return value;
}
public void setValue(int value)
{
this.value = value;
}

}

public class InitializeBlockDemo {

/**
* @param args
*/
public static void main(String[] args) {

InitializeBlockClass obj=new InitializeBlockClass();
System.out.println(obj.field);

obj=new InitializeBlockClass(300);
System.out.println(obj.field);
}

}

class InitializeBlockClass{
//下面这句在初始化块之前与之后,会影响到field字段的初始值
//public int field=100;

{
field=200;
}
public int field=100;
public InitializeBlockClass(int value){
this.field=value;
}
public InitializeBlockClass(){

}
}

动手动脑部分

package p;

import java.util.Scanner;

public class StaticMethod {

class Root {
static {
System.out.println("Root的静态初始化块");
}

{
System.out.println("Root的普通初始化块");
}

public Root() {
System.out.println("Root的无参数的构造器");
}
}
class Mid extends Root {
static {
System.out.println("Mid的静态初始化块");
}

{
System.out.println("Mid的普通初始化块");
}

public Mid() {
System.out.println("Mid的无参数的构造器");
}

public Mid(String msg) {
//通过this调用同一类中重载的构造器
this();
System.out.println("Mid的带参数构造器,其参数值:" + msg);
}
}
static class Leaf extends Mid {
static {
System.out.println("Leaf的静态初始化块");
}

{
System.out.println("Leaf的普通初始化块");
}

public Leaf() {
//通过super调用父类中有一个字符串参数的构造器
super("Java初始化顺序演示");
System.out.println("执行Leaf的构造器");
}

}

public class TestStaticInitializeBlock {
public static void main(String[] args) {
new Leaf();

}
}
}
运行结果如下

类的静态方法只能访问类的静态成员

类的静态方法是不能直接访问实例的成员的,它只能访问同类的静态成员。访问实例的成员的话,可以参考一下这个方法,那就是把静态方法的参数设置为类的实例,这样通过参数传递的方式就可以访问实例的成员了,例子如下:

 package trr;
2
3 public class trr {
4
5 public static void main(String[] args) {
6 x w;
7 w=new x();
8 x.show(w);//直接用类名调用静态方法
9 }
10
11 }
12 class x
13 {
14
15 int num=10;
16 static void show(x n) //参数设置为类的实例
17
18
19 {
20 System.out.println(n.num); //访问实例的成员
21 }
22
23 }

装箱过程是通过调用包装器的valueOf方法实现的
拆箱过程是通过调用包装器的xxxValue方法实现的(xxx表示对应的基本数据类型)
Byte、Short、Integer、Long这几个类的valueOf方法实现类似的。所以在[-128,127]区间内,==比较的时候,值总是相等的(指向的是同一对象),在这个区间外是不等的。
而Float和Double则不相等, Boolean的值总是相等的
equals():比较两个对象的值(内容)是否相同
”==“:比较两个对象的引用(内存地址)是否相同,也用来比较两个基础数据类型的变量值是否相等。

2022.9.30 Java第四次课后总结的更多相关文章

  1. 秋招如何抱佛脚?2022最新大厂Java面试真题合集(附答案

    2022秋招眼看着就要来了,但是离谱的是,很多同学最近才想起来还有秋招这回事,所以纷纷临时抱佛脚,问我有没有什么快速磨枪的方法, 我的回答是:有! 说起来,临阵磨枪没有比背八股文更靠谱的了,很多人对这 ...

  2. Java的四种内部类

    Java的四种内部类包括如下: 成员内部类 静态内部类 局部内部类 匿名内部类 成员内部类: 定义在另一个类(外部类)的内部,而且与成员方法和属性平级叫成员内部类,......相当于外部类的非静态方法 ...

  3. Java实验四

    20145113 Java实验四 快捷键 之前没怎么记ISDEA的快捷键,但是熟练使用快捷键可以带来很多的便利,于是先开始学习一些常用的快捷键,就采用它默认的快捷键,这样后期就不会出现冲突,一些and ...

  4. Java中四种引用:强、软、弱、虚引用

    这篇文章非常棒:http://alinazh.blog.51cto.com/5459270/1276173 Java中四种引用:强.软.弱.虚引用 1.1.强引用当我们使用new 这个关键字创建对象时 ...

  5. java中四种引用类型

    java中四种引用类型  今天看代码,里面有一个类java.lang.ref.SoftReference把小弟弄神了,试想一下,接触java已经有3年了哇,连lang包下面的类都不了解,怎么混.后来在 ...

  6. 《Thinking In Java第四版》拾遗

    <Thinking In Java第四版>拾遗 转自我的github(http://katsurakkkk.github.io/2016/05/Thinking-In-Java%E7%AC ...

  7. Java第四次上课博文动手动脑

    Java第四次上课博文动手动脑 1.    查看String.equals()方法 public class StringEquals { /** * @param args the command ...

  8. Java进阶(四十七)Socket通信

    Java进阶(四十七)Socket通信   今天讲解一个 Hello Word 级别的 Java Socket 通信的例子.具体通讯过程如下: 先启动Server端,进入一个死循环以便一直监听某端口是 ...

  9. Java进阶(四十三)线程与进程的区别

    Java进阶(四十三)线程与进程的区别 1.线程的基本概念   概念:线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必 ...

随机推荐

  1. 算法竞赛进阶指南0x35高斯消元与线性空间

    高斯消元 目录 高斯消元 ACWing207. 球形空间产生器(点击访问) 求解思路 代码 ACWing208. 开关问题(点击访问) 思路 代码 总结 欣赏 线性空间 定义 ACWing209. 装 ...

  2. 基于infiniband(IB)网的MVAPICH2安装

    一.下载安装包 下载链接:http://mvapich.cse.ohio-state.edu/downloads/  二.解压编译安装 mkdir /home/xujb/mvapich2 tar -x ...

  3. 见微知著,细节上雕花:SVG生成矢量格式网站图标(Favicon)探究

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_215 Favicon是favorites icon的缩写,也被称为website icon(站点图标).page icon(页面图 ...

  4. Macos系统编译percona及部分函数在Macos系统上运算差异

    欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 本文来源:原创投稿 GreatSQL社区原创内容未经授权不得随意使用,转载请联系 ...

  5. Jenkins使用pipeline部署服务到远程服务器

    写这篇文章是对之前搭建Jenkins做的修改和完善,让jenkins更好的为我们服务 Docker搭建Jenkins服务 使用过程中遇到的问题: 为方便部署,打算将jenkins用到的jdk11.ma ...

  6. Luogu1601 A+B Problem (高精度加法)

    蒟蒻复习了下高精 #include <iostream> #include <cstdio> #include <cstring> #include <alg ...

  7. Git 01 介绍

    参考源 https://www.bilibili.com/video/BV1FE411P7B3?spm_id_from=333.999.0.0 版本 本文章基于 Git 2.35.1.2 版本控制 版 ...

  8. mybatis 15: 缓存

    作用 当对某些数据的查询请求频繁,且数据不经常修改时,使用缓存机制可以提高查询效率 注意 mybatis专注于sql查询,数据映射 缓存问题应该交给专门负责缓存的其他第三方框架 mybatis缓存执行 ...

  9. 微软Azure配置中心 App Configuration (一):轻松集成到Asp.Net Core

    写在前面 在日常开发中,我这边比较熟悉的配置中心有,携程Apollo,阿里Nacos(配置中心,服务治理一体) 之前文章: Asp.Net Core与携程阿波罗(Apollo)的第一次亲密接触 总体来 ...

  10. 如何免费申请js.org二级域名

    最近看到很多人都去申请了js.org的域名,我就来写个教程吧! (本教程只注重于申请域名,而不是如何使用Github) 看看成品:https://butterfly.js.org/ 官网是这么写的: ...