java基础一(阅读Head First Java记录)

写在前面的话

在实际应用java中,因为没有系统去看过书或者学习过,所以基础薄弱,刚好这本书是比较入门级的一些书,记录一下下面的一些基本概念,以方便自己来学习。当然如果对大家有帮助也是很好的。

因为书有大概700页,如果把各个知识点放在一个随笔里未免过多了。随意我决定拆分成几个随笔来写。这篇主要是介绍了一些运行java程序。java的类、变量、方法的一些基础内容。

 

java工作方式

1.编写源代码.java文件

2.通过javac编译程序对java代码进行编译,检查是否有错误

3.编译通过没错误后输出.class的java文件

5.通过java虚拟机(JVM)来读取和执行.class文件,将字节码转成平台能够理解的形式来运行

java的程序结构

1.类在源文件中

2.方法存于类中

3.语句存于方法中

4.每个程序最少有一个类和一个main(),一个程序只会有一个main(),main()是程序的起点

class Dog{

private int size;

pulibc int getsize(){

return size;

}

public int add(int total){

int a=10;

int b=12;

total=a+b;

return total

}

}

Dog g=new Dog()

说明:这里Dog是类名,g是对象的引用变量。size是实例变量。a和b是方法中的局部变量,add()和getsize()是方法。

类与对象

1.类不是对象,类是创造他们的模型(类是对象的蓝图)

2.类由已知的实例变量和执行的方法组成

3.main()的两种用途:测试真正的类和启动java应用程序

4.java可以将所有文件依据pkzip格式来存档Java Archive-.jar文件,jar文件中可以引用一个简单的文字格式的文字文件manifest定义jar中按一个文件包含main()方法

5.编译.java文件会将.java文件中的所有类都编译出来放到单独的.class文件里(二进制文件)

变量

1.java注重类型,变量必须有类型和名称

2.float类型后面必须加上f,否则所有带小数点的值都会当做double处理(例float f=32.5f)

引用变量:(例如有一个Dog类,Dog d;d就是一个引用Dog对象的引用变量)

1.引用变量的值代表为与堆上的对象的存取方法,使用圆点.来操作,可以相当于引用指向

2.没有引用到任何对象的引用变量的值是null

3.引用变量指向的对象是存在堆上的,当堆上的对象没有被引用时会被GC垃圾回收。

数组

1.数组也是对象,不管里面放到是不是原始主数据类型

2.数组本身绝对不可能是原始主数据类型

3.他可以包含原始主类型数据(int),也可以包含引用变量,但是引用变量存的只是引用,还是需要创建对象

4.一旦数组被声明出来,就只能装入所声明类型的元素(例外byte可以放进int内)

方法

1.java是通过值传递的,也就是通过拷贝传递。所以方法中的变量实际是把值拷贝给形参

2.方法中可以改变形参的值,但是无法改变调用方式传入的参数的值

实例变量

1.实例变量永远都会有默认值,integers(0),float(0.0),booleans(false),references(false)

2.数据封装,可以通过private将变量标记为私有(这样外部不能通过圆点对数据直接进行存取操作),然后通过public的getter或setter方法来设置变量值和读取变量值,且可以对写入的值做限制

3.实例变量是声明在类内而不是方法中

4.局部变量时声明在方法中,没有默认值。局部变量在使用前必须初始化。如果不初始化会编译不通过

5.方法的参数与局部变量相同,但是不需要初始化也可以编译通过,调用方法时需要输入参数值

比较

1.使用==对primitive类型数据比较。只是比较对应字节组合是否相等

2.使用==对引用变量进行比较,只有两个引用指向同一个对象的时候才返回true(对象不是一个,值一样也是false)

开发类的过程

1.找出类应该做的事情

2.列出实例变量和方法

3.编写方法的伪码

伪码由三部分组成:实例变量的声明,方法的声明和方法的逻辑

4.编写方法的测试应用程序(先写测试用程序概念来自极限编程XP,这样能够更容易更快写出代码)

5.实现类

6.测试方法

7.除错或重新设计

注意点

1.if和while语句判断的都是boolean值的条件

2.int x=(int) 24.6;(int)可以取浮点数的数值取整数部分

3.执行java程序需要先用javac xxx.java进行编译。然后使用java xxx来执行程序(注意,javac编译时文件需要加.java后缀,然后编译通过才可以使用java xxx来执行程序,但是这时不需要加.class后缀,直接用程序名即可)

时间: 2024-10-07 08:57:01

java基础一(阅读Head First Java记录)的相关文章

Java基础10:全面解读Java异常

Java基础10:全面解读Java异常 为什么要使用异常 首先我们可以明确一点就是异常的处理机制可以确保我们程序的健壮性,提高系统可用率.虽然我们不是特别喜欢看到它,但是我们不能不承认它的地位,作用. 在没有异常机制的时候我们是这样处理的:通过函数的返回值来判断是否发生了异常(这个返回值通常是已经约定好了的),调用该函数的程序负责检查并且分析返回值.虽然可以解决异常问题,但是这样做存在几个缺陷: 1. 容易混淆.如果约定返回值为-11111时表示出现异常,那么当程序最后的计算结果真的为-1111

Java基础15:深入剖析Java枚举类

Java基础15:深入剖析Java枚举类 枚举(enum)类型是Java 5新增的特性,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示. 初探枚举类 在程序设计中,有时会用到由若干个有限数据元素组成的集合,如一周内的星期一到星期日七个数据元素组成的集合,由三种颜色红.黄.绿组成的集合,一个工作班组内十个职工组成的集合等等,程序中某个变量取值仅限于集合中的元素.此时,可将这些数据集合定义为枚举类型. 因此,枚举类型是某类数据可能取值的集合,如一周内星期可能取值的

Java基础1:深入理解Java面向对象三大特性

Java基础1:深入理解Java面向对象三大特性 三大特性:继承 封装 多态 继承 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类. 子类拥有父类非private的属性和方法. 子类可以拥有自己属性和方法,即子类可以对父类进行扩展. 子类可以用自己的方式实现父类的方法 Java中的继承只能单继承,但是可以通过内部类继承其他类来实现多继承. public class Son extends Father{publi

Java基础知识强化99:Java 常见异常及趣味解释

常见 Java 异常解释:(译者注:非技术角度分析.阅读有风险,理解需谨慎:) 1. java.langjava.lang软件包是java语言的核心部分,它提供了java中的基础类. java.lang.Object,这是java.lang的根类,也是所有java类的超类. java.lang ArithmeticException 出现异常的运算条件时,抛出此异常.例如,一个整数"除以零" 你正在试图使用电脑解决一个自己解决不了的数学问题,请重新阅读你的算术表达式并再次尝试. Arr

Java基础知识强化49:Java中哈希码

1.概念:      哈希其实只是一个概念,没有什么真实的指向.它的目的是保证数据均匀的分布到一定的范围内.所以不同数据产生相同的哈希码是完全可以的.      现在是站在JAVA虚拟机的角度来看内存里面的布局,站在JAVA虚拟机的角度,在内存里面有好多好多个对象,这里用椭圆来代表一个个对象.一个程序运行起来的时候,可能会有很多个对象在内存里面分配,那么对于JAVA虚拟机来说,它运行的时候需要找到这些对象的地址,这些对象的地址怎么找呢?JAVA虚拟机会用一张表记录每一个对象在什么位置上,而这张表

Java基础学习笔记二十三 Java核心语法之反射

类加载器 类的加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,链接,初始化三步来实现对这个类进行初始化. 加载就是指将class文件读入内存,并为之创建一个Class对象.任何类被使用时系统都会建立一个Class对象. 链接指的是将Java类的二进制代码合并到JVM的运行状态之中的过程.在链接之前,这个类必须被成功加载.类的链接包括验证.准备和解析等几个步骤. 验证:是否有正确的内部结构,并和其他类协调一致. 准备:负责为类的静态成员分配内存,并设置默认初始化值 解析:

java基础知识(十一)java反射机制(上)

java.lang.Class类详解 java Class类详解 一.class类 Class类是java语言定义的特定类的实现,在java中每个类都有一个相应的Class对象,以便java程序运行时系统(JVM)对所有对象进行运行时类型标识,即Class对象,JVM可以通过该对象操作相应的类(如选准正确的方法执行). Class类用于封装被装入JVM中类(类或接口)的信息(类名.类型属于class.interface.enum还是annotation),是java反射机制的基础,通过Class

java基础语法(本人学习java的笔记)

基本语法部分 为选定的行改为注释: shift+方向键  选定数行内容 ctrl+/ 想解绑哪一行的话,同样使用ctrl+/ 常量:final 数据类型 输入赋值: int 变量名: Scanner in=new Scanner(System.in); 变量名=in.nextint(): 数据类型强制转换: (数据类型名) 变量名 if  else: else语句总与最近的if匹配: math.random()   这个函数可以随机产生一个[0,1)的数 可以通过*100  *1000  的方法

Java基础知识强化10:Java中的中间缓存变量机制

1.对于自增运算++j与j++,由于加一的执行顺序不同,所以Java中有中间缓存变量来储存其单个表达式的值,而j的自增自减的结果依然保留在原来的变量储存区.因为本体是j的值,而单个表达式的值是中间产生的一个临时变量值,是在整条计算表达式结束后就可以抛弃的值,所以用个临时中间缓存变量在放就可以了.这就可以实现自增自减运算在计算时值的加减1顺序差异产生的表达式与本体值差异的两个变量储存. 2. 1 因为在计算过程中,使用了Java中间变量缓存机制.在java中,执行自增运算时,会为每一个自增操作分配

java基础知识强化52:Java程序员面试失败的5大原因

下面是Java程序员面试失败最有可能的5大原因,当然也许这5点原因适用于所有的程序员,所以,如果你是程序员,请认真阅读以下内容. 1 说得太少 尤其是那些开放式的问题,如“请介绍下你自己”或“请讲一下你曾经解决过的复杂问题”.面试官会通过你对这些技术和非技术问题的回答来评估你的激情.他们也会通过模拟团队氛围和与你的交流互动来判断你的经验和能力. 所以,仅仅只用两三句话来回答不但不能显示出你对这个专业的兴趣,还会让整个面试过程显得非常无聊.如果你不能很好地说明你的经验.成就和技能可以给企业带来的价