写在前面的话
在实际应用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)
 
for循环与while循环的差别
1.for循环可以有初始化、Boolean、重复表达式三部分。初始化可以初始化多个参数
2.while只有Boolean部分,不能初始化和填写重复执行的部分
3.while适合不知道具体执行次数的循环
 
前置与后置的递增/递减操作符++ --
1.后置是先做等增和递减的操作,再赋值
     例如:int x=0; int z=x++; 结果x和z都是1
2.前置是先赋值变量再做递增和递减的操作
     例如:int x=0;int z=++x;结果x=1,z=0
 
开发类的过程
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后缀,直接用程序名即可)
4.每个.java文件只能有一个public的class类,否则编译不通过(网上解释说只能有一个公共的对外接口,虽然不是很明白)
5.main()函数中必须加(String[] args)才可以执行,否则编译不通过。这是因为String数组接收了命令行的参数,虽然我们没传入任何参数,但实际上传入了运行时的参数,我们可以打印一下就可以看到,否则没有接收运行参数的是不能运行的。

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

  1. Java基础:三步学会Java Socket编程

    Java基础:三步学会Java Socket编程 http://tech.163.com 2006-04-10 09:17:18 来源: java-cn 网友评论11 条 论坛        第一步 ...

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

    java.lang.Class类详解 java Class类详解 一.class类 Class类是java语言定义的特定类的实现,在java中每个类都有一个相应的Class对象,以便java程序运行时 ...

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

    常见 Java 异常解释:(译者注:非技术角度分析.阅读有风险,理解需谨慎:) 1. java.langjava.lang软件包是java语言的核心部分,它提供了java中的基础类. java.lan ...

  4. Java基础知识强化48:Java中哈希码

    1.概念:      哈希其实只是一个概念,没有什么真实的指向.它的目的是保证数据均匀的分布到一定的范围内.所以不同数据产生相同的哈希码是完全可以的.      现在是站在JAVA虚拟机的角度来看内存 ...

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

    类加载器 类的加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,链接,初始化三步来实现对这个类进行初始化. 加载就是指将class文件读入内存,并为之创建一个Class对象.任 ...

  6. JAVA基础知识(一)—JAVA概述

    JAVA概述 1991 年Sun公司的James Gosling(詹姆斯·高斯林)等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒.PDA等的微处理器: 1994年将Oak语言更名 ...

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

    更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...

  8. Java基础-基于《Thinking In Java》

    摘要 本文是对一些java基础知识的整理,把之前印象笔记里面的全部慢慢搬到这个blog来 为了方便就按照<Thinking In Java>的目录来编辑. 这里面的内容均为面试题相关,可能 ...

  9. Java基础学习总结一(Java语言发展历史、JDK下载安装以及配置环境变量)

    最近一段时间计划复习一下java基础知识,使用的视频课程是尚学堂高淇老师的,上课过程中的心得体会直接总结一下,方便以后复习. 一:计算机语言的发展 1:机器语言,最原始的语言,主要有“01”构成,最早 ...

  10. 大话java基础知识一之为什么java的主函数入口必须是public static void

    为什么java的主函数入口必须是public static void main (String[] args); 很多写javaEE好几年的程序员经常会记得java的主函数就是这么写的,但实际上为什么 ...

随机推荐

  1. 20181009-3 选题 Scrum立会报告+燃尽图 02

    Scrum立会报告+燃尽图(02)选题 此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2191 一.小组介绍 组长:刘莹莹 ...

  2. debian 安装deb软件

    deb包 deb包是debian,ubuntu等LINUX发行版的软件安装包,是类似于rpm的软件包,而非debian,ubuntu系统不推荐使用deb软件包,因为要解决软件包依赖问题,安装也比较麻烦 ...

  3. 利用Web Services开发分布式应用

    一.引言 在前面文章中分别介绍了MSMQ和.NET Remoting技术,今天继续分享.NET 平台下另一种分布式技术——Web Services 二.Web Services 详细介绍 2.1 We ...

  4. Python面试题(十二)

    1.利用Python执行shell脚本取得返回结果 import subprocess result = subprocess.getoutput('dir') 答案 2.用Python将" ...

  5. 每日一条 git 命令行:git clone https://xxxxx.git -b 12.0 --depth 1

    每日一条 git 命令行:git clone https://xxxxx.git -b 12.0 --depth 1 -b 12.0:分支 12.0 --depth 1:depth 克隆深度,1 为最 ...

  6. PHP安全性漫谈

    最近刚做完两个PHP的网站项目,客户虽然没有安全性的相关需求,但是自己不能放过对自己的要求,何况对以后做电子商务的项目相当有帮助,呵呵,早准备早超生,经过查看PHP 帮助和相关资料~~~~       ...

  7. python 简明教程

    第一个源程序 #!/usr/bin/python# Filename : helloworld.pyprint 'Hello world' 执行: $ python helloworld.py 或者  ...

  8. unity的sprite添加点击事件

    直接说方法 添加一个2dxxx的碰撞器 添加一个OnMouseDown的回调函数,这个函数看script reference就可以

  9. java中的变量和常量

    也可以先声明后赋值  自动类型转换 1.  目标类型能与源类型兼容,如 double 型兼容 int 型,但是 char 型不能兼容 int 型 2.  目标类型大于源类型,如 double 类型长度 ...

  10. 使用anaconda安装tensorflow (windows10环境)

    版权声明:勤学 修德 明辨 笃实 - CSDN周雄伟 https://blog.csdn.net/ebzxw/article/details/80701613 已有环境:python3.7.1 ana ...