写在前面的话
在实际应用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. Jenkins插件开发(一)--环境搭建

    最近写了一个jenkins插件,功能比较简单,时间主要是花在对jenkins插件框架和Maven的熟悉上.jenkins插件虽然以前也接触过一点,不过现在都忘得差不多了,这个笔记权当知识点记录,顺带介 ...

  2. SQLSERVER 数据调度示例,调度数据到中间表或者历史表

    USE [MeiDongPay_Test] GO /****** Object: StoredProcedure [dbo].[Job_BatchTransferOrderToMidst] Scrip ...

  3. Centos7环境下安装python3.6.4 并与python2共存

    最近安装了新系统centos7,本身自带python2.7,但是由于需要使用python3 来运行一些应用,所以想到在centos环境下安装python3,并保证其和python2 可以共存. 步骤如 ...

  4. 多目标跟踪baseline methods

    参考文献: MOTChallenge 2015: Towards a Benchmark for Multi-Target TrackingLaura Leal-Taix ´e, Anton Mila ...

  5. Oozie_02安装遇到错误【20161116】

    [错误原因]hadoop的core-site.xml配置错误  把用户名hadoop配置成了主机名hadoop01 <!-- OOZIE --><property> <n ...

  6. WebService 初步入门的理解

    先说明 我不是高手 我是菜鸟  也在不断学习的过程  记录下来这些是让自己总结的学习  毕竟我做的时候也是摸索前进的 我没有深入 我是入门摸索 前两天的时候做一个微信的开发的 要用到我们公司微信服务号 ...

  7. soql取第一件数据

    User u = [select ID,Name from User Limit 1];

  8. 【转载】python安装numpy和pandas

    转载:原文地址 http://www.cnblogs.com/lxmhhy/p/6029465.html 最近要对一系列数据做同比比较,需要用到numpy和pandas来计算,不过使用python安装 ...

  9. Linux环境编程之同步(四):Posix信号量

    信号量是一种用于提供不同进程间或一个给定进程的不同线程间同步手段的原语.有三种类型:Posix有名信号量,使用Posix IPC名字标识.Posix基于内存的信号量,存放在共享内存区中:System ...

  10. MySQL binlog日志优化

    mysql中日志类型有慢查询日志,二进制日志,错误日志,默认情况下,系统只打开错误日志,因为开启日志会产生较大的IO性能消耗.   一般情况下,生成系统中很少打开二进制日志(bin log),bin ...