1、空串和null串
空串""s是长度为0的字符串,它是一个java对象,有自己的串长度和内容(空)
因此,可以调用String类对象的方法,如:
if( str.length() == 0)if(str.equals(""))
但是,如果是null串呢?
当我们把String 变量赋值为null,即String str = null时,表示的是目前没有任何对象与该变量关联,因此,它不能调用String类对象的方法,例如:

String str = null;
System.out.println(str.length());//error

会出现错误。

2、数组:

java 中:
int [] a = new int[100];
相当于c++中:
int* a = new int[100];

创建一个数字数组时所有元素初始化为0,boolean数组初始化为false,对象数组初始化为null。 同 1 , 数组长度为0和为null是不一样的。
将元素拷贝到另一个数组用 Arrays.copyOf(type[],int)Arrays.copyOfRange(type[],int start,int end)

3 、对象与对象变量
对象变量并没用包含一个变量,而只是引用了一个对象
可以将java对象变量看作c++的对象指针
理解:

Date birthday; // in  java相当于:
Date *birthday; // in  c++

因此,如果把一变量的值赋给另一变量,那么俩个变量指向同一对象
在java中必须使用clone方法获得对象的完整拷贝。

4、方法参数
1)传值调用
2)引用调用
这里引用调用举个反例:

public static void swap(Employee x, Employee y)
{Employee temp;temp = x;x = y;y = temp;
}
//在main里面
Employee a =  new Employee("Alice",....);
Employee b = new Employee("Bob",....);
swap(a,b);
//does a now refer to Bob, b to Alice?

这里ab的对象引用并没有改变
类似于c++中

void swap(int *a,int *b)
{int* temp = a;a = b;b = temp;
}//在main中
....
int *p1 = new int [10];
int *p2 = new int [5];
swap(p1,p2);
//    p1 和p2的指向并没有改变
....

若要改变,应该用二级指针 或引用(注意 :c++的引用和java的不一样)

//二级指针
void swap(int **a, int **b)
{int *temp =  *a;*a = *b;*b = temp;
}
//调用: swap( &p1,&p2)
//c++ 引用
void swap(int*& a,int*& b)
{int* temp = a;a = b;b = temp;
}
//调用 : swap(p1,p2)

5、用this调用另一个构造器
例如:

class Employee
{private static int nextId;..........public Employee(String aname,double asalary){................}public Employee(double asalary){// call Employee(String ,double)this("Employee #" + nextId,asalary);nextId++;}

**这个奇淫异巧c++没有 **

Java核心技术笔记 1相关推荐

  1. Java核心技术笔记 语言基础

    <Java核心技术 卷Ⅰ> 第3章 Java 的基本程序设计结构 一些规则 类命名:CamelCase 驼峰命名法,以及必须是字母开头,后面跟字母和数字的任意组合: 源代码文件名:必须与公 ...

  2. Java核心技术笔记 异常、断言和日志

    <Java核心技术 卷Ⅰ> 第7章 异常.断言和日志 处理错误 捕获异常 使用异常机制的技巧 记录日志 处理错误 如果由于出现错误而是的某些操作没有完成,程序应该: 返回到一种安全状态,并 ...

  3. 自学java核心技术笔记(康师傅)

    java初级笔记 文章目录 java初级笔记 第一章 Java技术简介 一.Java的性质 面向对象 可移植性 动态性 二.关于对Java常见误解的解释 1.Java是HTML的拓展 2.Java是专 ...

  4. 给大忙人看的Java核心技术笔记(8、Stream)

    流提供了数据视图,让你可以在比集合更高的概念层上指定操作.使用流只要指定做什么,而不是怎么做.将操作的调度执行留给实现. 要点: 1.迭代器使用了一种明确的遍历策略,同时也阻止了高效的并发执行 2.你 ...

  5. Java核心技术笔记——第 12 章 反射

    转载自:[https://www.cnblogs.com/chanshuyi/p/head_first_of_reflection.html] 12 反射 1. 引入反射 通常情况下,调用一个类的方法 ...

  6. Java 核心技术卷 II(第 8 版) – 读书笔记 – 第 1 章(下)

    22.一旦获得了一个 Charset,就可以在 Java 的 Unicode 和指定的编码格式之间进行转化,下面以 GBK 和 Unicode 之间做为例子. 从 Unicode 到 GBK: imp ...

  7. Java核心技术卷一读书笔记

    文章目录 Java核心技术卷一读书笔记 第一章 Java程序设计概述 1.1 关键特性 第二章 Java程序设计环境 2.1 使用命令行工具 第三章 Java的基本查询设计结构 3.1 数据类型 3. ...

  8. Java核心技术卷一笔记

    Java核心技术-卷一学习笔记 文章目录 Java核心技术---卷一学习笔记 前言 一.第一章Java程序设计 标题Java具有的特性: 二.第二章Java程序设计环境 JDK和Jre的区别 第三章J ...

  9. Java核心技术卷一、二读书笔记(PDF)分享

    分享一下笔记(书)PDF在下面,懂得都懂 一 Java程序设计概述 1)Java语言的特性 简单性 Java语法是c++的一个纯净版本,这里没有头文件,指针运算(指针语法),结构,联合,操作符重载,虚 ...

最新文章

  1. 10.1自动机器学习Auto_ML
  2. Linux内存管理:ARM64体系结构与编程之cache(3):cache一致性协议(MESI、MOESI)、cache伪共享
  3. Android中当item数量超过一定大小RecyclerView高度固定
  4. wifi精灵android版,WiFi精灵安卓版
  5. 兄弟连视频教程下载地址汇总-2014
  6. abaqus模拟单向压缩实验
  7. 从零开始学编程之我见
  8. 监听pda扫描_uniapp App监听PDA扫描工具数据
  9. 根据图片地址检查图片格式,今日头条有效
  10. php编程里的push,【编程词典】php array_push()函数
  11. NIO学习笔记——缓冲区(Buffer)详解
  12. ID基本操作(标尺,参考线,网格)5.11
  13. 多图!2020年互联网大厂中秋礼盒PK!阿里走情怀,腾讯更复古,最走心的是......
  14. android 使用Google map api v3 不用申请key!
  15. sublime插件开发手记
  16. UA OPTI512R 傅立叶光学导论18 亥姆霍兹方程与惠更斯-菲涅尔原理
  17. tdk怎么设置_网站的TDK如何设置及优化
  18. PL/SQL常见例题
  19. 有道桌面词典老是显示网络已断开的解决方案
  20. 下列sql语句中哪条语句可为用户zhangsan分配数据库userdb表userinfo的查询和插入数据权限

热门文章

  1. python零基础能学吗-终于知道深圳Python零基础能学吗
  2. 《解析深度学习:语音识别实践》.pdf
  3. 输入指定答案提示正确C语言,大学C语言课件及复习答案输入输出.ppt
  4. dio设置自定义post请求_Flutter中的http网络请求
  5. html5d调用百度语音,易语言调用百度语音平台实现文字转换语音功能的代码
  6. SpringBoot 实现接口参数加密解密功能
  7. 自定义vue中的验证码组件
  8. 【深度优先搜索】计蒜客:方程的解数
  9. 开源数字媒体资产管理系统:Razuna
  10. DirectShow Filter 开发典型例子分析 ——字幕叠加 (FilterTitleOverlay)1