一:基本的需要注意点(基础语句);

package my;

public class hello {

    public static void main(String[] args) {
// TODO Auto-generated method stub // 1.
String name = "chen";
System.out.println(name); // 2.
boolean a = 1 > 2;
System.out.println(a);
boolean b = false;
boolean c = true; // 3.
final int d = 1;
// b=2; 错误的 相当于c++中的const // 4 类型装换
double e = 11.3;
int f = (int) e;
System.out.println(f);
// 隐式转换和显示转换 // 5.语句
// 在函数内以分号结束的一行,称为语句statement,注意是在函数中 // 6.数组的应用
// 创建一个数组对象,容纳20个int
int[] arr = new int[20];
arr[0] = 1;
arr[1] = 2;
// 输出长度为20
System.out.println(arr.length);
char ch = 'a';
System.out.println(ch);
char[] chh = new char[10];
chh[0] = 'a';
System.out.println(chh); } }

二:在java中初识对象与引用

1. 疑问:

① int[] a = { 11, 11, 11, 11 };
② int[] b = a;
③ b[3] = 45;
④ for(int i=0; i<a.length; i++)
{
⑤ System.out.print( a[i] + " ");
}
其中,
第①行,创建了一个数组对象a,
第②行,又定义了另一个b 对象,
第③行,修改了b[3]。这里修改的是b,那么a 的值不变是吗?
第⑤行,实际输出的是11 11 11 45,说明对b 的修改会同时影响a
的内容。为什么呢?

因为:

在Java 语言里,对象(Object)是一个基础概念。
int[] a = new int[4];
在此式中,等号右侧创建了一个数组对象,等号左侧的变量a 称为该
对象的引用( Reference)。
一般来说,可以以称作“变量a 指向了一个对象”,或者简称为“a
是一个对象, 其中a 是对象的名字”

多个变量可以指向同一个对象,例如,
int[] a = new int[4];
int[] b = a;
b[3] = 45;
由于a,b 指向的是一个对象,所以修改b[3],就等同于修改a[3]。
这就好比,“小明”指的是人,“陈明”指的也是人。一个
人可以有多个名字。

2.空指针null

在Java 语言里,有一种特殊的对象,称为“空对象”。例如,
int[] a = null;
其中,a 指向一个空对象,其实就是说a 不指向任何对象。
理解以下几行代码:
① int[] a = new int[4];
② int[] b = a;
③ a = null;
其中,
第①行,创建了一个对象,命名为a
第②行,b 和a 指向同一个对象第

第③行,a 指向null。此时,a 不指向任何对象,而b 指向刚才创建
的对象。

注意:a不能再当成数组用,要不然就是空指针错误

3.失去引用对象

观察以下代码:
① int[] a = { 8, 8, 8 };
② a = new int[4];
③ a[0] = a[1] = a[2] = a[3] = 17;

第①行,创建了一个数组对象,内容为{ 8,8,8}
第②行,创建另一个数组对象, 内容{ 0,0,0,0 }
问题来了,当执行完第②后,曾经创建的第一个对象就没有任何变量
引用它了,称为“失去引用”的对象。

注意:第一个对象系统会自动回收销毁这个对象,此过程称为垃圾加收

java学习过程小问题的更多相关文章

  1. Java学习过程中的总结的小知识点(长期更新)

    Java学习过程中的总结的小知识点 (主要是自己不会的知识和容易搞错的东西) 计算某个程序运行的时间 long stime=System.currentTimeMillis(); copy3(file ...

  2. Java开发小技巧(三):Maven多工程依赖项目

    前言 本篇文章基于Java开发小技巧(二):自定义Maven依赖中创建的父工程project-monitor实现,运用我们自定义的依赖包进行多工程依赖项目的开发. 下面以多可执行Jar包项目的开发为例 ...

  3. 微信机器人 返现机器人 pc版本 移动版本 java开发 小范省钱

    微信机器人 返现机器人 pc版本 移动版本 java开发 小范省钱 微信搜索微信号 fanli-x 或 扫描下方二维码,可查看效果. 非web版微信,pc/移动版微信 支持新号24小时 不封号! 有任 ...

  4. java的小程序在html中的运行测试

    java的小程序在html中的运行测试,打开vs2012,以网站模式打开,生成,调用iis临时服务器运行.

  5. java 编写小工具 尝试 学习(七)

    1.在java 编写小工具 尝试 学习(六)里学会了,控件 的随意摆放, 以及大小(x,y,width,height),又根据前面学习的按钮 被点击 的事件监控 的方法 ,点击 按钮 在显示区域显示“ ...

  6. 第一个java的小东西

    第一次自己写的一个java的小东西,毕竟自己第一次写的,其中可谓是历经艰难,最后总结下来就是java实在是不适合写界面化的东西代码量比较大,这还不是最关键的,最关键的是控件的位置实在是太难控制了. 这 ...

  7. Java太阳系小游戏分析和源代码

    Java太阳系小游戏分析和源代码 -20150809 近期看了面向对象的一些知识.然后跟着老师的解说做了一个太阳系各行星绕太阳转的小游戏,来练习巩固一下近期学的知识: 用到知识点:类的继承.方法的重载 ...

  8. 福利贴——爬取美女图片的Java爬虫小程序代码

    自己做的一个Java爬虫小程序 废话不多说.先上图. 目录命名是用标签缩写,假设大家看得不顺眼能够等完成下载后手动改一下,比方像有强迫症的我一样... 这是挂了一个晚上下载的总大小,只是还有非常多由于 ...

  9. Java五子棋小游戏(控制台纯Ai算法)

    Java五子棋小游戏(控制台纯Ai算法) 继续之前的那个五子棋程序 修复了一些已知的小Bug 这里是之前的五子棋程序 原文链接 修复了一些算法缺陷 本次增加了AI算法 可以人机对战 也可以Ai对Ai看 ...

随机推荐

  1. unittest单元测试框架之测试结果输出到外部文件(四)

    1.test_suit执行测试用例及输出结果前 添加如下代码(打开会新建d:/result.txt文件): with open("d:\\result.txt","a&q ...

  2. 一点一点看JDK源码(五)java.util.ArrayList 后篇之SubList

    一点一点看JDK源码(五)java.util.ArrayList 后篇之SubList liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点看JDK源码(〇) S ...

  3. dmesg功能介绍

    dmesg 命令的使用范例 ‘dmesg’命令设备故障的诊断是非常重要的.在‘dmesg’命令的帮助下进行硬件的连接或断开连接操作时,我们可以看到硬件的检测或者断开连接的信息.‘dmesg’命令在多数 ...

  4. C#程序员快速上手Angular开发

    由vue的技术栈快速切换到Angular,对于C#开发人员来说应该不难,二期是一个比较平滑的过渡.所以最近 记录下切换到Angular框架的一些过程,因为NG天然支持Typescript,特别是当项目 ...

  5. 正则表达式-Regular expression学习笔记

    正则表达式 正则表达式(Regular expression)是一种符号表示法,被用来识别文本模式. 最近在学习正则表达式,今天整理一下其中的一些知识点 grep - 打印匹配行 grep 是个很强大 ...

  6. 编译升级至openssh7.6

    1.概述 目的:下载源码包(https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-7.6p1.tar.gz),编译升级为openssh为7.6 ...

  7. [翻译]Hystrix wiki–How it Works

    注:本文并非是精确的文档翻译,而是根据自己理解的整理,有些内容可能由于理解偏差翻译有误,有些内容由于是显而易见的,并没有翻译,而是略去了.本文更多是学习过程的产出,请尽量参考原官方文档. 流程图 下图 ...

  8. vi模式下的编辑、删除、保存和退出

    vi + 文件名:进入 vi 模式 编辑模式:shift+: 退出编辑模式:Esc 退出编辑模式后可进行光标的上下左右移动(偶尔会出现ABCD,还不知道怎么解决,目前只能出来一个删除一个) 光标处:按 ...

  9. Win7配置express4环境

    本机环境: $ node -v v10.14.1 $ npm -v 6.4.1 配置node环境变量: #配置全局安装目录 npm config set prefix "G:\WEB\nod ...

  10. linux服务器项目部署【完整版】

    之前总玩v8虚拟机,最近看到腾讯云学生套餐很实惠就租了个linux服务器搭一个项目,做下这个项目部署全记录,即为了方便以后查看,同时也分享下自己的经验,不足之处还请多多指教,废话不多说,直接开始!!! ...