Think in Java(一):Java基础

一. OOP的特点

(1) 万物皆为对象;

(2) 程序是对象的集合,他们通过发送信息来告诉彼此所要做的;

(3) 每一个对象都有自己的由其它对象所构成的存储;

(4) 每一个对象都拥有它的类型;

(5) 某一特定类型的对象都能够接收相同的消息;

二. Java比C++简单?

(1) Java有垃圾回收器, 不用手动销毁对象;

(2) Java使用单根继承;

(3) Java仅仅能以一种方式创建对象(在堆上创建);

三. 数据存储

(1) 寄存器: 速度最快, 数量有限, 它位于CPU内部, 但我们不能直接控制它。在C,C++中同意你向编译器建议寄存器的分配方式。

(2) 堆栈: 存放基本类型的数据和对象的引用, 但对象本身不存放在栈中,而是存放在堆中。

(3) 堆: 存放用new产生的对象, 速度比分配栈要慢一些。

(4) 静态存储: 固定的一块存储区域, 静态存储里面的数据在整个程序执行期间都能訪问到。

(5) 非RAM: 对象被转化成某种能保存在其它介质上的东西, 要用的时候又能在内存里重建。

四. "==" 和 equals

(1) == 用于推断引用对象的内存地址是否同样。

(2) equals比較的也是地址, 可是假设你重写了equals方法, 那么它就能够比較对象的内容。

五. 关于sizeof

C和C++的sizeof()用于获取数据须要占用多少字节的内存, 之所以须要sizeof是考虑到平台移植, 由于C和C++同样

的数据类型在不同的机器上占用的内存长度不一样; 而Java不须要sizeof, 由于Java的数据类型在不同的平台上占用字节是一样的,

Java是跨平台的。

时间: 2024-08-09 19:12:31

Think in Java(一):Java基础的相关文章

java String 类 基础笔记

字符串是一个特殊的对象. 字符串一旦初始化就不可以被改变. String s = "abc";//存放于字符串常量池,产生1个对象 String s1=new String("abc");//堆内存中new创建了一个String对象,产生2个对象 String类中的equals比较字符串中的内容. 常用方法: 一:获取 1.获取字符串中字符的个数(长度):length();方法. 2.根据位置获取字符:charAt(int index); 3.根据字符获取在字符串中

2.2JAVA基础复习——JAVA语言的基础组成运算符和语句

JAVA语言的基础组成有: 1.关键字:被赋予特殊含义的单词. 2.标识符:用来标识的符号. 3.注释:用来注释说明程序的文字. 4.常量和变量:内存存储区域的表示. 5.运算符:程序中用来运算的符号. 6.语句:程序中常用的一些语句. 7.函数:也叫做方法,用来做一些特定的动作. 8.数组:用来存储多个数据的集合. JAVA中的运算符 1.算术运算符:用来进行一些数据算法的符号 算术运算符分为单目运算符.双目运算符.三目运算符. 单目运算符有:+(取正)-(取负)++(自增)--(自减)代码如

Java网络编程基础(六)— 基于TCP的NIO简单聊天系统

在Java网络编程基础(四)中提到了基于Socket的TCP/IP简单聊天系统实现了一个多客户端之间护法消息的简单聊天系统.其服务端采用了多线程来处理多个客户端的消息发送,并转发给目的用户.但是由于它是基于Socket的,因此是阻塞的. 本节我们将通过SocketChannel和ServerSocketChannel来实现同样的功能. 1.客户端输入消息的格式 username:msg    username表示要发送的的用户名,msg为发送内容,以冒号分割 2.实现思路 实现思路与Java网络

Java语言的基础知识

第三章 1.在java源文件编辑器中,选择某个成员变量,然后按住shift+alt+j,Eclipse会自动添加JavaDoc文档注释结构,如果选择的是方法,还会自动添加参数名称. 2.Java语言规定标示符是由任意的字母.下划线.美元符号和数字组成,并且第一个字符不能使数字,标示符不能使java中的保留关键字. 3.在Java语言中允许使用汉字或其他语言文字作为变量名,如int 年龄 =21;在程序运行时不会报错,但建议尽量不要使用这些语言作为变量. 4.java用关键字final来声明常量,

[Java 05 OO] (基础篇) 《Java开发实战经典》

p5OO 第五章 面向对象 (基础篇) Notes (1), Constructor / this / String   String str1 = "hello"; 解释 : 是把一个在堆内存空间的使用权给了 str1 对象.   String str2 = "hello"; str1 == str2 是 true   String 字符串的内容不可改变 (2), Java 常用的内存区域    1), 栈内存空间    2), 堆内存空间    3), 全局数据

JAVA学习(五):Java面向对象编程基础

Java面向对象编程基础 面向对象(Object oriented programming,OOP)技术是一种强有力的软件开发方法,它採用数据抽象与信息隐藏技术,来使软件开发简单化,以达到代码重用的目的. 1.OOP的3个特性(封装.继承和多态性) 封装是类的基础.指把类的相关实现细节隐藏起来,在类中将数据和实现操作的代码集中起来放在对象的内部.调用这些类时仅仅需直接使用类预留的接口就能够了. 继承提供了子类自己主动拥有父类数据结构和方法的机制.它表示类之间的一种关系. 多态指使一个对象被看成还

读书笔记--《java语言程序设计--基础篇》

一.概述:    这是读的第一本英文原版的专业书籍,总的来说,因为自己也有一些基础,读起来并不是非常的费劲.前半部分主要是介绍java的相关语法,正好借着这样的机会巩固了一下自己的码代码的能力,基本上把书中的代码都打了一遍,前面的部分主要是用的notepad++来写的,notepad++ 也有代码提示功能,用起来还是挺不错的,但是用cmd 来编译,连接,javac 然后java 执行,似乎很容易出现编码格式方面的问题.后半部分主要是利用Myeclipse来写的,也尝试了一下 intelliJ i

Java并发(基础知识)—— Executor框架及线程池

在Java并发(基础知识)—— 创建.运行以及停止一个线程中讲解了两种创建线程的方式:直接继承Thread类以及实现Runnable接口并赋给Thread,这两种创建线程的方式在线程比较少的时候是没有问题的,但是当需要创建大量线程时就会出现问题,因为这种使用方法把线程创建语句随意地散落在代码中,无法统一管理线程,我们将无法管理创建线程的数量,而过量的线程创建将直接使系统崩溃. 从高内聚角度讲,我们应该创建一个统一的创建以及运行接口,为我们管理这些线程,这个统一的创建与运行接口就是JDK 5的Ex

Java语言的基础知识4

第五章(数组) 1.在Java中可以将数组看做是一个对象虽然基本数据类型不是对象但有基本数据类型组成的数组是对象. 2.对于二维数组求第二维就用array[0].length, array.length就是默认的是第一维的长度. 3.foreach并不是一个新的语法它是for的循环的格式化主要执行遍历功能的循环,example: int arry ={1,2,3,4,5}; for(int i :array){ system.out.println(): } 4.数组元素定义完以后可通过Arra

黑马程序员——Java I/O基础知识之I/O流

I/O流基础知识--字节流和字符流 文件存储在硬盘中,是以二进制表示的,只有内存中才能形成字符.数据的来源可以有硬盘,内存,控制台,网络,Java把数据从一个地方转到另一个地方的现象称为流,用InputStream和OutputStream接口来表示,这两个流里面的都是以字节为单位的,后来加入了Reader和Writer,里面操作的是字符,是两个字节为单位的. 字节流 字节流将数据写入文件 try { File file =new File("d:" +File .separator+