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

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. Java并发包:AtomicBoolean和AtomicReference

      AtomicBoolean AtomicBoolean是一个读和写都是原子性的boolean类型的变量.这里包含高级的原子操作,例如compareAndSet().AtomicBoolean位于J ...

  2. React-Reflux 基础分享

    因工作需要使用 React + Reflux 开发,最近几天都在努力学习着,特别是 Reflux,在网上查找的许多资料和 github 上的文档年代都有点久远,JavaScript 按照目前的节奏,更 ...

  3. linux下pip错误 ImportError: No module named 'pip_internal'

    wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate sudo python get-pip.py

  4. mysql 的基本操作总结--增删改查

    本文只是总结一下mysql 的基本操作,增删改查,以便忘记的时候可以查询一下 1.创建数据库 语法:CREATE DATABASES 数据库名; 例子: CREATE DATABASES studen ...

  5. 颜色rgba、16进制、10进制互相装换

    rgba转16进制: function RGBToHex(rgb){ var regexp = /[0-9]{0,3}/g; var re = rgb.match(regexp);//利用正则表达式去 ...

  6. Redis(七):Redis的发布订阅

    Redis的发布订阅导航目录: 是什么 命令 案例 是什么 进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. 订阅/发布消息图 命令 案例 先订阅后发布后才能收到消息,1 ...

  7. Ubuntu Linux TinySerial串口调试助手 可视化界面 安装使用

    ubuntu Linux下串口调试助手使用 Tiny Serial为一个开源项目,欢迎大家使用,基于Qt开发的串口调试助手,有一般串口助手的基本功能,更多功能正在完善. Github地址:https: ...

  8. 基于傅里叶变换的音频重采样算法 (附完整c代码)

    前面有提到音频采样算法: WebRTC 音频采样算法 附完整C++示例代码 简洁明了的插值音频重采样算法例子 (附完整C代码) 近段时间有不少朋友给我写过邮件,说了一些他们使用的情况和问题. 坦白讲, ...

  9. Log4net 配置实例

    首先需要下载并引用Log4net的binary.这一步可以通过在Visual Studio里的Manage Nuget package for solution轻松添加. 第二步是配置config文件 ...

  10. Java基础之instanceof和transient关键字用法

    instanceof 用于检测指定对象是否是某个类(本类.父类.子类.接口)的实例.Java中的instanceof也称为类型比较运算符,因为它将类型与实例进行比较. 返回true或false. 如果 ...