Java 完全面向对象的编程语言,编写程序都是从类开始写起
文件名必须与类名(public class ,实际上一个文件中可以定义无数多个class,但是只能有一个public class)取成一致,且两者的大小写要一致
对于一个应用程序来讲,还必须有一个main()方法,且只能有一个main()方法。该方法标志着执行应用程序时的起始点
关键字public表明所有的类都可以调用该方法,关键字static表明该方法是一个静态方法(可以直接通过"类名.方法名"的形式直接进行调用),关键字void表示main()方法无返回值
Java程序中的每条语句都要以分号;结束(包括以后程序中出现的类型说明等)
编译时的常见错误
javac:Command not found 是PATH变量未正确设置以包括javac编译器。javac编译器位于JDK目录下的bin目录
HelloWorldApp.java:6: Method printl(java.lang.String) not found in class java.io.PrintStream.System.out.printl (“Hello World!”);方法名println 出现打印错误
In class HelloWorldApp:main must be public or static该错误的出现是因为词static 或public被放在了包含main方法的行之外
can’t find class HelloWorldApp这个错误是在打印java HelloWorldApp时产生的。通常它表示在命令行中所指定的类名的拼写与filename.class文件的拼写不同
源文件布局
一个 Java 源文件可包含三个“顶级”要素
- 一个包声明(可选) package com.yan; 命名空间
- 任意数量的导入语句 import java.io.*; 引入其它定义的程序
- 类和接口声明 [public] class A{}
三要素必须以上述顺序出现。即,任何导入语句出现在所有类定义之前;如果使用包声明,则包声明必须出现在类和导入语句之前。每个Java的编译单元可包含多个类或接口,但是每个编译单元最多只能有一个类或者接口是公共的。
一个文件中可以定义多个class,但是最多只能由一个public class,因为文件名称必须和public class类名称一致(大小写在内);当然在一个文件中的class名称不能重复[实际上在一个包中的类名称不能重复],如果文件中没有public class,则文件名称没有约束
Java命名规范
一般较大的公司中都有自己的规范,如果没有建议采用ali发布的ali的规范或者采用sun的规范。
- 包采用域名反转的方式,全部小写,用点分开
- 类和接口使用名词,首字母大写,例如ChinaPerson
- 方法一般动词,首字母小写,大写字母分词,例如pickUp
- 变量首字母小写,大写字母分词,例如userName
- 常量全大写,以_分词,例如SEX_A
Java基础总结
Java语言
- 一种面向对象的语言
- 一种平台无关的语言,必须程序运行的解释环境
- 一种健壮的语言,吸收了C/C++语言的优点,但是去掉了影响程序健壮性的部分,例如指针、内存的申请与释放等
- 以执行性能为代价换取高安全性
典型的应用场景:互联网环境
程序是为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合。
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
JDK全称是Java Development Kit,译为Java开发工具包,JDK是整个Java的核心,包括Java运行环境、Java工具和Java基础类库。JDK是开发任何类型Java应用程序的基础。
每一个程序有且只能有一个main方法。
编译Java源程序不需要手工操作,如果程序没有错误,Eclipse可以实现自动编译;如果有错误,Eclipse会给出相应的错误提示,修改正确后会自动完成编译。
IDE工具的安装
如果使用文本编辑工具编写代码,问题在于没有任何提示,编码效率低;而且不停的需要进行切换【编辑发现问题–修改源代码】。所以需要使用IDE工具(集成开发环境),在工具中可以直接编写代码,编译源程序并执行
集成开发环境IDE是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。IDE即集成开发环境。IDE提供了一个可视化的编程的窗口,实现代码的可视化管理。如:代码的提示、调试代码等。
常见IDE:Eclipse
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。该软件是IBM使用java开发出来的并开源的,IBM号称斥资4000万开发的通用开发平台,添加不同的插件就可以执行不同的工作。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。官方下载网站eclipse.org
可以直接下载zip后缀的文件,这实际就是一个绿色版的Eclipse,解压缩后可以直接使用
常见IDE:MyEclipse
该软件本质不是一个软件。是一个基于Eclispe的一个插件,提供了企业开发人员使用最新技术有效创建强大的应用程序所需的一切,已经和Eclispe做了一个基本的整合,大家可以直接下载即可。MyEclipse是在eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错。
常见IDE:IDEA
IDEA全称IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ号称是在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Python等少数语言。
Java标识符
在Java编程语言中,标识符是赋予变量、类或方法的名称。变量、函数、类和对象的名称都是标识符,程序员需要标识和使用的东西都需要标识符。
标识符可从一个字母(Unicode编码字符集)、下划线_或美元符号$开始,随后也可跟数字、字母、下划线或美元符号。
标识符是区分大小写,没有长度限制,可以为标识符取任意长度的名字
标识符不允许使用保留字。关键字对Java编译器有特殊的含义,它们可标识数据类型名或程序构造construct名, java语言中的保留字均用小写字母表示
变量
变量是Java程序中的基本存储单元,它的定义包括变量名、变量类型和作用域三个部分。其中数据类型指明变量或表达式的状态和行为,数据类型决定了数的取值范围和运算符号
变量是Java程序中的基本存储单元,它的定义包括变量名、变量类型和作用域几个部分。例如int k=100; 其中int是数据类型,k是变量名
Java属于强类型编程语言。变量类型一旦声明,则不能进行修改
数据类型可以决定变量所需要的存储空间大小和对应的处理逻辑
作用域是指变量生效的范围,从定义的位置开始,到所在的{}结束为止
错误1:要求临时变量必须是先定义后使用,必须是先赋初值后使用
错误2:因为k定义在{}内部,所以k只在上面的{}分为内有效,离开了{}则失效,{}外引用k则报错
JAVA是强类型语言
每个变量有类型,每个表达式有类型,而且每种类型都是严格定义的
- Java编译器对所有的表达式和参数都要进行类型相容性的检查,以保证类型是兼容的
- 任何类型的不匹配都将被报告为错误而不是警告。在编译器完成编译以前,错误必须被改正过来
在Java语言数据类型可以分为两大类:基本类型(原生类型primitive type)和引用类型(复合类型referance type)
- 4类 整数: byte 1B short 2B int 4B long 8B 默认为int 特殊后缀L/l
- 浮点数: float 4B double 8B 默认double 特殊后缀 f/F D/d
- 字符: 单引号 2B unicode[java默认0-65535]
- 布尔: true、false
引用类型: 复杂类型,其中包括class/interface、数组、null。注意:null属于引用类型,所以int k=null;语法错误
基本类型
基本类型是指不能再分解的数据类型,其数据在函数的调用中是以传值方式工作的。
简单数据类型代表单值,而不是复杂的对象
Java是完全面向对象的,但简单数据类型却不是,它们类似于其他大多数非面向对象语言中的简单数据类型。这样做的原因是出于效率方面的考虑。在面向对象中引入简单数据类型不会对执行效率产生太多的影响。
Java编程语言有八个原始数据类型,可分为4种整型、2种浮点数、字符型数据和布尔型数据,不会随着计算机类型而变化的。
整数类型
byte,short,int,long 补码存储
- byte字节整数 1B -128到127
- short短整型 2B -32768到32767
- int 整型 4B -2147483648到2147483647
- long 长整型 8B -9223372036854775808到9223372036854775807
所有Java编程语言中的整数类型都是带符号的数字,不存在无符号整数。整数类型的文字可使用十进制、八进制和十六进制表示
十进制整数。如123,-456,0
八进制整数。以0开头,如0123表示十进制数83,-011表示十进制数-9。
十六进制整数。以0x或0X开头,如0x123表示十进制数291,-0X12表示十进制数-18
二进制整数,以0b或0B开头,例如0b10110010
整数类缺省为int类型,如在其后有一个字母“L”表示一个long值。例如long k=123456789012345678L; 实际上末尾的L或者l都可以,但是一般不建议使用l
浮点数类型
两种浮点类型float和double 浮点数无法准确存放,所以浮点数不能进行等值判断
- float 4B 单精度浮点数 7-8有效数据 1.4E-45到3.4028235E38
- double 8B 双精度浮点数 15-16有效数据 4.9E-324到1.7976931348623157E308
如果一个数包括小数点或指数部分,或者在数字后带有字母F或f(float)、D或d(double),则该数为浮点数
- 十进制数形式。由数字和小数点组成,且必须有小数点,如0.123, 1.23, 123.0
- 科学计数法形式。如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数
注意:浮点数无法精确存放
备注:本篇文章转载于蓝鸥教育闫峻讲师