1:用引用操作对象
在java中一切都被视为对象,我们操作的是对象的引用,而非对象本身。
引用可以单独存在,它并不是对象;当你试图操作一个空引用(没有赋值给对象)时,
会报运行时异常,所以:
2:对象必须由你创建
五种不同的数据存储方式:
1)寄存器(数量有限,你不可以直接控制)
2)堆 栈(通过上下移动指针来创建和释放内存,通常用来存放对像引用、基本类型数据)
3)堆 (用来存放对象,有很大的灵活性,但分配时须要更多的时间)
4)常量存储(存放不可变的值,位于程序内部,放在rom中)
5)非ram存储:(流:发送到别一台机器;持久对象:存放在磁盘中;jdbc:存放到数据库中)
基本类型:(不用new来创建变量,而是把值直接存到堆栈中)
基本类型 | 大小 | 量小值 | 量大值 | 包装类 |
boolean | - | - | - | Boolean |
char | 16-bit | unicode 0 | 2的16次-1 | Character |
byte | 8 | -128 | 127 | Byte |
short | 16 | -2的15次 | 2的15次-1 | Short |
int | 32 | -2的31次 | 2的31次-1 | Integer |
long | 64 | -2的63次 | 2的63次-1 | Long |
float | 32 | Float | ||
double | 64 | Double | ||
void | - | - | - | Void |
基本类型占用存储空间大小固定(boolean除外),不会随着机器的硬件变化而变化,因此可移植性好
包装类:(在堆中创建对象,基本类型都有)
Character ch = 'x'; //封包:自动转换为包装类型的对象 char c = ch; //拆包:自动 转换为基本类型
高精度数字:
BigInteger和BigDecimal(用于操作任意精度的数字,损失一定效率)对应int和float
数组:(以少量内存开销和运行时下标检查,换来了安全性和效率)
创建数组对象时,实际是创建了数组引用,它们被初始化为null
3: 永远不要销毁对象
作用域决定了在其内定义的变量名的可见性和生命周期。
(注:同名变量不能被定义两次)
对象可以 存活在作用域之外,但对象引用不可以,所以我们不能在作用域之外访问该对象(即使他现在还存在)
4:类
类包含两种类型的元素:字段(用来存放类的属性,普通类成员变量不能被多个对象共享,static字段除外)和方法
基本成员变量默认值:(最好明确地对其初始化)
基本类型 | 默认值 |
boolean | flase |
char | '\u0000'(null) |
byte | 0 |
short | 0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
(局部变量不会被自动初始化,否则会报错)
5:方法,参数与返回值
java中的方法只能作为类的一部分来创建,方法只能通过对象才能被调用
java中参数都是对象,传递的其实是对象引用
return关键字用来退出方法,可以在方法的任何位置返回
6:static 关键字(讲得还不错:http://blog.csdn.net/chenssy/article/details/13004291)
当声明一个事物为static时,就意味着这个域或者方法不会与包含它的哪个类的任何对象实例关联在一起
对于字段:所有对象都共享它
对于方法:在于不用创建对象就可以访问
7:操作符
1):优先级
一般是先乘除后加减(不知道时,可以用括号改变运算顺序)
2):赋值
基本类型存储了实际的数值,是直接将一个地方的内容复制到另一个地方。
对象,实际操作的是对象引用
3):算术操作符(+-/*%)
一元加减号作用:将小类型的操作数提升为int
4):自增和自减
a++ ==> 先生成值,再计算(即现在它还代表a的值)
++a ==> 先计算,再生成值(即现在它代表a+1的值)
a--
--a
5):关系操作符(>,<,>=,<=,==,!=)
对象的关系操作(==,!=)其实是在比较对象引用,应使用equals()方法,并覆盖它,因为从object继承下来的equals方法,是在比较对象引用。(对象的比较应是对象字段值的比较)
6):逻辑操作符(&&,||,!)只应用于boolean
7):直接常量(后厕所后缀字符标志了它的类型)
L(无论大小写)代表long,F代表float,D代表double
十六进制数适用于所有整数类型,以前缀0X[0-9a-zA-Z];如果试图将变量初始化成超过自身表示范围的值,编译器会将值(char,byte,short)自动转换成int,其它将进行窄化转换
8):按位操作符(&,|,^,~ {一元操作符}) 不会短路
9):移位操作符(<<,>>,>>>)
<<:操作数向左移动,低位补0
>>:向右移动 有符号;正号,高位插入0;负号,高位插入1
>>>:向右移动,插入0
10):三元操作(boolean-exp ? value1 : value2 ;)
11):类型转换
截尾:比int类型大就会
舍入:比int类型小(char,byte,short)
2:java不会将int类型转换为boolean
8:控制流程(所有条件语句都用条件表达式的真或假来决定执行路径)
分支:if(1==9){}else{}
迭代:while(){} do{}while() for(int i=0;i<9;i++){} for(float a : range(10))
return :作用:可以返回值,也可以提前退出方法
break:退出当前迭代
continue:退出本次迭代
//java中没有goto,但可用其它实现 label1: for(int i=1;i<9;i++){ for(int j=1;j<9;j++){ break label1; // continue label1; 退出到label1处 } }
switch:选择语句
switch ('a') { #接收int或char emun case 'a': System.out.print('a'); break; case 'b': System.out.print('b'); break; default: System.out.print('c'); }9:初始化与清理
相关推荐
在Java编程语言中,"一切都是对象"这一概念是其核心特性之一。Java的设计目标是成为一种纯面向对象的语言,它在C++的基础上进一步优化,降低了复杂性,特别是在面向对象编程方面。与C++不同,Java不支持C语言那样的...
在Java中,一切都被视为对象,这意味着无论处理何种类型的数据,都可以使用相同的语法来进行操作。当我们提到“操纵对象”时,实际上是在操纵该对象的引用。引用类似于遥控器与电视机的关系:我们通过遥控器(引用)...
在JavaScript中,一切都是对象,包括基本类型(如字符串、数字、布尔值)在某些场景下也会被当作对象处理。下面将详细讲解这些知识点: 1. **变量**: - JavaScript中的变量使用`var`、`let`或`const`关键字声明。...
在JavaScript语言中,一切都是对象。因此,任何可以使用JavaScript原生语法表示的数据结构都可以用JSON表示。然而,JSON比JavaScript更简单、更纯粹,仅包括最常用的数据类型:数值、字符串、数组、对象(键值对)、...
在Java中,由于一切都是对象的引用,组合通常基于对象引用进行。组合的优势在于它保持了封装性,因为被包含对象的内部实现对外部是不可见的,实现了“黑盒”复用,增强了系统的灵活性和可扩展性。然而,组合可能导致...
一切皆对象是 Python 中的一个重要概念,类是对象,类的实例也是对象,模块是对象,函数也是对象。所有的一切都是对象。 在 Python 中,类的定义使用 class 语句,具体步骤是:在写完关键字 class 之后,就跟上类的...
对象是键值对的集合,可以通过点运算符或方括号运算符来访问其属性。原型链、构造函数、实例化和原型对象的概念是JavaScript对象模型的重要组成部分,手册会详细阐述这些内容。 在函数部分,手册可能涵盖函数的定义...
* Java 是一门面向对象的语言,它定义一切都是对象面向对象 * Java 学习的重要性在于它可以提高软件开发的效率和代码重用 知识点二:面向对象编程思想 * 面向对象编程思想是 Java 程序设计的核心思想 * 面向对象...
然而,与数字或字符串不同,对象是键值对的集合,可以通过属性(keys)和方法(functions)来访问和操作它们。 2. **构造函数**: 构造函数是创建对象的特殊函数,通常用于初始化新创建的对象。使用`new`关键字...
在JavaScript中,几乎一切都是对象,包括函数。这种特性使得JavaScript成为一门非常灵活的语言。 ##### 1. 数据类型 JavaScript中的数据类型可以分为两大类:基本数据类型和复杂数据类型(对象)。 - **基本数据...
Java语言是面向对象编程的典型代表,它的设计哲学便是"一切都是对象"。 **对象、类与实体** 1. **对象**:对象是面向对象编程中的基本单位,它代表了现实世界中一个具体的实体或者概念。在Java中,对象是类的实例...
JavaScript对象是JS编程中的核心概念,它是一种数据结构,用于存储和组织数据。在JavaScript中,一切都是对象,包括基本类型如字符串、数字和布尔值,它们都有对应的包装对象。理解JavaScript对象模型对于深入学习和...
对象是数据和处理这些数据的方法的封装体。在Objective-C中,一切皆为对象,即使是基本类型如整型或字符型也会被视为对象。OOP的核心理念包括: - **封装**:隐藏对象的内部状态,只通过公开的接口与外部交互。 - *...
组合可以通过引用或值实现,但Java中一切都是对象的引用。 **组合的优点**: 1. 容器类仅通过被包含对象的接口与其交互,保持了封装性。 2. 实现细节对外部隐藏,实现了“黑盒”复用。 3. 更好的可扩展性,因为对象...
在面向对象的世界里,一切都是对象。面向对象有三大特性:封装、继承和多态。 1. **封装**:隐藏对象的属性和实现细节,仅对外提供公共访问方式。这样做的好处是可以自由修改对象内部结构而不影响其他对象。 2. **...
在面向对象的世界里,一切都是对象,每个对象都有自己的属性和行为。 #### 二、类与对象 **类**:类是对象的模板或蓝图,定义了一组相似对象的共同特征和行为。它是抽象的,不能直接创建实例。 **对象**:对象是...
而在Python中,一切都是对象,类是通过`class`关键字定义,继承是通过冒号(`:`)表示,多态则是语言内置的特性。 通过学习面向对象程序设计,开发者可以构建更模块化、可维护的代码,更容易应对复杂的问题。PDG这...
在Qt中,一切都是对象,这是其设计哲学之一。Qt对象模型基于C++的面向对象特性,提供了一套完整的事件处理机制、信号与槽(Signals & Slots)通信机制、属性系统和元对象系统。信号与槽是Qt的核心特性,允许对象间...