Java核心技术笔记 1
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?
这里a
和b
的对象引用并没有改变
类似于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相关推荐
- Java核心技术笔记 语言基础
<Java核心技术 卷Ⅰ> 第3章 Java 的基本程序设计结构 一些规则 类命名:CamelCase 驼峰命名法,以及必须是字母开头,后面跟字母和数字的任意组合: 源代码文件名:必须与公 ...
- Java核心技术笔记 异常、断言和日志
<Java核心技术 卷Ⅰ> 第7章 异常.断言和日志 处理错误 捕获异常 使用异常机制的技巧 记录日志 处理错误 如果由于出现错误而是的某些操作没有完成,程序应该: 返回到一种安全状态,并 ...
- 自学java核心技术笔记(康师傅)
java初级笔记 文章目录 java初级笔记 第一章 Java技术简介 一.Java的性质 面向对象 可移植性 动态性 二.关于对Java常见误解的解释 1.Java是HTML的拓展 2.Java是专 ...
- 给大忙人看的Java核心技术笔记(8、Stream)
流提供了数据视图,让你可以在比集合更高的概念层上指定操作.使用流只要指定做什么,而不是怎么做.将操作的调度执行留给实现. 要点: 1.迭代器使用了一种明确的遍历策略,同时也阻止了高效的并发执行 2.你 ...
- Java核心技术笔记——第 12 章 反射
转载自:[https://www.cnblogs.com/chanshuyi/p/head_first_of_reflection.html] 12 反射 1. 引入反射 通常情况下,调用一个类的方法 ...
- Java 核心技术卷 II(第 8 版) – 读书笔记 – 第 1 章(下)
22.一旦获得了一个 Charset,就可以在 Java 的 Unicode 和指定的编码格式之间进行转化,下面以 GBK 和 Unicode 之间做为例子. 从 Unicode 到 GBK: imp ...
- Java核心技术卷一读书笔记
文章目录 Java核心技术卷一读书笔记 第一章 Java程序设计概述 1.1 关键特性 第二章 Java程序设计环境 2.1 使用命令行工具 第三章 Java的基本查询设计结构 3.1 数据类型 3. ...
- Java核心技术卷一笔记
Java核心技术-卷一学习笔记 文章目录 Java核心技术---卷一学习笔记 前言 一.第一章Java程序设计 标题Java具有的特性: 二.第二章Java程序设计环境 JDK和Jre的区别 第三章J ...
- Java核心技术卷一、二读书笔记(PDF)分享
分享一下笔记(书)PDF在下面,懂得都懂 一 Java程序设计概述 1)Java语言的特性 简单性 Java语法是c++的一个纯净版本,这里没有头文件,指针运算(指针语法),结构,联合,操作符重载,虚 ...
最新文章
- 10.1自动机器学习Auto_ML
- Linux内存管理:ARM64体系结构与编程之cache(3):cache一致性协议(MESI、MOESI)、cache伪共享
- Android中当item数量超过一定大小RecyclerView高度固定
- wifi精灵android版,WiFi精灵安卓版
- 兄弟连视频教程下载地址汇总-2014
- abaqus模拟单向压缩实验
- 从零开始学编程之我见
- 监听pda扫描_uniapp App监听PDA扫描工具数据
- 根据图片地址检查图片格式,今日头条有效
- php编程里的push,【编程词典】php array_push()函数
- NIO学习笔记——缓冲区(Buffer)详解
- ID基本操作(标尺,参考线,网格)5.11
- 多图!2020年互联网大厂中秋礼盒PK!阿里走情怀,腾讯更复古,最走心的是......
- android 使用Google map api v3 不用申请key!
- sublime插件开发手记
- UA OPTI512R 傅立叶光学导论18 亥姆霍兹方程与惠更斯-菲涅尔原理
- tdk怎么设置_网站的TDK如何设置及优化
- PL/SQL常见例题
- 有道桌面词典老是显示网络已断开的解决方案
- 下列sql语句中哪条语句可为用户zhangsan分配数据库userdb表userinfo的查询和插入数据权限
热门文章
- python零基础能学吗-终于知道深圳Python零基础能学吗
- 《解析深度学习:语音识别实践》.pdf
- 输入指定答案提示正确C语言,大学C语言课件及复习答案输入输出.ppt
- dio设置自定义post请求_Flutter中的http网络请求
- html5d调用百度语音,易语言调用百度语音平台实现文字转换语音功能的代码
- SpringBoot 实现接口参数加密解密功能
- 自定义vue中的验证码组件
- 【深度优先搜索】计蒜客:方程的解数
- 开源数字媒体资产管理系统:Razuna
- DirectShow Filter 开发典型例子分析 ——字幕叠加 (FilterTitleOverlay)1