美文网首页程序员
《Java编程思想》笔记2:对象,基础语法

《Java编程思想》笔记2:对象,基础语法

作者: 992134d3a7cd | 来源:发表于2017-06-05 07:29 被阅读31次

本篇关注:对象(第1,2章),基础语法(第3,4章)


对象

面向对象程序设计(Object-oriented Programming,OOP)
每个对象都有内部数据(状态),方法(产生行为),标识(内存中唯一地址,或其他)
每个对象都是某个类class的一个实例 instance

Light lt = new Light();
lt.on();

类名:Light。
创建Light新对象:定义一个引用(reference)lt,用new指向一个新对象。
接口 interface:定义了对某一对象能发出的请求(调用这个类中的方法)
此例子的接口里有on(), off()等方法。
实现 implementation:由满足请求的代码和隐藏数据构成

String s = new String("abc");
创建一个引用 reference的同时最好就初始化。

垃圾回收器:监视用new创建的所有对象,一旦不再需要,它们就会自行消失,释放内存空间。

基本类型
基本数据类型

高精度的类:运算速度较慢
BigInteger:支持任意精度的整数。
BigDecimal:支持任意精度的定点数。

自动装箱:自动地将一个原始数据类型转换为一个封装类型
自动拆箱:自动地将一个封装类型数据转换为原始数据类型

变量
public class Variable{
     static int allClicks = 0; // 静态变量
     String str="hello world"; // 成员变量
     
     public void method(){
        int i =0; // 局部变量
     }
}
  • 成员变量:类中方法外。有默认初始化值。
    • 静态变量:类变量,全局变量。可直接用类名调用。被分配了单一的存储空间,同样的数据只有一份。
  • 实例变量
  • 局部变量:方法中定义的变量。必须初始化。
数据存储位置
  • Registers 寄存器:
    位于处理器内部,是最快的存储区。由编译器根据需求分配,Java程序无法控制它。

  • Stack 栈,堆栈 :
    位于RAM。堆栈指针向下移动(分配新内存),向上移动(释放内存)。
    存放局部变量和对象引用。
    数据可共享。比如int a =3; int b = 3; 引用的是同一个3。

  • Heap 堆:位于RAM。存放new出来的类的对象(包括其成员变量)和数组。数据不共享。

  • 常量池:存放在编译期被确定,并被保存在已编译的.class文件中的一些数据;存放字符串常量,其他基本数据类型的常量,类和接口的全限定名,字段名称和描述符,方法名称和描述符。
    JDK1.6常量池放在方法区,JDK1.7常量池放在堆内存,JDK1.8放在元空间里面,和堆相独立。

  • Non-RAM storage 非RAM存储:在程序外。比如流对象,持久化对象。

return:已经做完,离开方法。方法返回值需要放在return后面。
void方法不需要返回值,return仅用作离开。

域 field

域是类中的数据成员。通常是非static。

方法 method

static方法内部不能调用非static方法,反之可以。

参数

  • 实参 argument:实际参数,传递给方法的参数。可以是常量、变量、表达式、函数等,必须有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。
  • 形参 parameter:形式参数,不是实际存在变量,又称虚拟变量。是在定义方法的时候使用的参数。目的是用来接收调用该方法时传入的参数。在调用方法时,实参将赋值给形参。

形参的本质是变量名,不占内存空间。实参的本质是一个变量,占用内存空间。

环境

JDK(Java Development Kit),Java开发所需的工具包。
JRE(Java Runtime Environment),Java运行环境。

编码风格

驼峰风格。不要用下划线。
类名首字母大写。方法、变量、引用首字母小写。


操作符

移位操作符

左移操作符(<<):按照右侧指定的位数将操作数向左移动,在低位补0
“有符号”右移操作符(>>):按照右侧指定的位数将操作数向右移动,若操作数的符号为正,则在高位插0;若操作数的符号为负,则在高位插入1
“无符号”右移操作符(>>>):按照右侧指定的位数将操作数向右移动,无论操作数的正负,都在高位插入0

自动递增(++)和递减(--)

i++:先使用再加1;++i:先加1再使用

类型转换

类型自动转换:低级数据类型自动转换为高级数据类型
强制类型转换:高级数据类型转换为低级数据类型

控制执行流程

while比do-while更常用。do-while至少会先执行一次。
foreach:用于数组和容器,还有任何Iterable对象。

break:强制结束整个循环,不再执行剩余代码。
continue:结束本次循环,回到循环起始处,开始下一次循环。
return:退出方法,或从方法返回一个值。

无穷循环:while(true) 和 for(;;) 完全等价。

Switch 多项选择

switch (interal-selector) {
    case interal-value1 : statement1; break;
    case interal-value2 : statement1; break;
    case interal-value3 : statement1; break;
    //...
    default: break;
}

interal-selector 整数选择因子,可以是:
char, byte, short, int 以及包装类 Character, Byte, Short, Integer
enmu枚举 
String字符串


References:

吕龙宝的《Java编程思想》学习笔记
实参和形参

相关文章

  • 2019-07-23

    java 基础 基础语法: 1-2天 编程思想: 面向对象 封装,继承,多态 高级应用 : 线程;IO; 网络 J...

  • 《Java编程思想》笔记2:对象,基础语法

    本篇关注:对象(第1,2章),基础语法(第3,4章) 对象 面向对象程序设计(Object-oriented Pr...

  • 《Java编程思想第四版》笔记---1~9章(1)面向对象基础

    《Java编程思想第四版》笔记---1~9章(1)面向对象基础 1.java中的4种访问制权限(1)public:...

  • C++学习笔记之C++基础

    1、C++学习计划 (1)基础语法(复习)——初步了解,基础编程(2)核心编程——面向对象(3)提高编程——泛型编...

  • 2017年技术规划

    2017年技术规划 03 编程基础一 Java语法基础: 运算符、访问控制、循环、条件、反射 面向对象: 类、抽象...

  • Java Web开发过程

    翻看以前初学Java时的笔记,献给初学者的你: 第一个阶段(java基础阶段) 1.java语法 2.面向对象 3...

  • Java基础语法知识学习(一)

    Java基础语法知识学习(一) 1.简介:java是面向对象的编程语言,现在eclipse IDE开发环境下进行学...

  • Python 学习笔记

    Python 学习笔记 Python 基础语法 Python是一种面向对象解释型计算机编程语言,语法简洁凝练,强制...

  • 2019-01-30 java编程思想前几章阅读笔记总结

    md文档使用2个空格就是换行 java编程思想阅读笔记 第二章 Java中一切都是对象 使用应用操作对象 首先 j...

  • 面向对象的三大特征

    一、有良好的Java面向对象思想,扎实的编程基础和编程规范。 1、封装 核心思想就是“隐藏细节”、“数据安全”:将...

网友评论

    本文标题:《Java编程思想》笔记2:对象,基础语法

    本文链接:https://www.haomeiwen.com/subject/hjtifxtx.html