java语言的基本特点
java
语言是面向对象的高级程序设计语言,它是编译型的语言,Java
语言不使用指针,并提供了自动的垃圾回收机制,使得程序员不必为内存管理而担忧。java
语言支持多线程,使得Java
程序能够并行处理多项任务。java
还具有动态性、类库丰富、高性能等特点
强类型语言
java不像js那样,Java语言是强类型语言,而且每种类型都要求严格定义。首先,每个变量、表达式都有类型。其次,所有的数值传递,不管是直接的、还是通过方法调用经由参数传递,都要进行类型相容性检查。
高效解释执行
Java为了实现“一次编译,随处运行”的目标,Java 的源程序在编译时,并不直接编译成特定的机器语言程序,而是编译成与系统无关的“字节码(Byte codes)”,由Java 虚拟机(Java Virtual Machine,JVM )来执行
面向对象思想
Java
由四方面组成:Java
编程语言、Java
类文件格式、Java
虚拟机和Java
应用程序接口(Java API
)。
java
是完全面向对象的语言,对象具有状态、行为和标识。这意味着每一个对象都可以拥有内部数据和方法。每一个对象在内存中都有一个唯一的地址。
每个对象都有一个接口,程序在执行期间具有不同的状态而其他方面都相似的对象会被分组到对象的类中,这就是关键字class
的由来。事实上所有的面向对象程序设计语言都使用class
这个关键词来表示数据类型。当看到类型一词时,可将其作为类来考虑,反之亦然。
类
描述了具有相同特性和行为(功能)的对象集合,所以一个类实际上就是一个数据类型,例如所有的浮点型数字具有相同的特性和行为集合。
JAVA
里的类 就好比一个浇注的模具,模具里有怎么制造成品的一些方法 、一个大体的套路。 但是并没有创造任何对象,而在创建对象的时候 应用到Java
的类 这样才把模具实体化 创建出一个成品。
类
:一一是具有共同特征和行为的一类事物的统称。是对对象的描述,是创建对象的"模板"
类的特点:
类是对象的类型
具有相同属性和方法的一组对象的集合
类型,指由各特殊的事物或现象抽出来的共通点;
对象的特点
对象是具有类 类型的变量。类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。
基本语法
Java语言八种基本数据类型,整数类(byte、short、int、long),文本类(char),浮点类(double,float)和逻辑类(boolean)
编写Java
程序时,应注意以下几点:
1.java和js一样,都是对大小写敏感的
2.类名:类名首字母要大写,如果由单词组成,那么每个单词的首字母也要大写
3.方法名:方法名采用驼峰命名格式。
4.源文件名:保存的源文件名必须和类名相同
5.主方法入口:所有的`Java` 程序由`public static void main(String args[])`方法开始执行。
6.标识符:所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始
7.修饰符:可访问修饰符 : `default, public , protected, private`。不可访问修饰符 : `final, abstract, strictfp`
单引号引的数据 是char类型的
双引号引的数据 是String类型的
单引号只能引一个字符
而双引号可以引0个及其以上
局部变量和成员变量
1.成员变量:在类中定义,用来描述对象将要有什么。成员变量又分为 实例变量 和 类变量(static
静态变量):
class One{
float x; //x为实例变量
static int y; //只要有关键字static,y就为类变量
}
2.局部变量:在类的方法中定义,在方法中临时保存数据
public 返回类型 方法1(){
变量1类型 变量1;//局部变量
}
局部变量的作用域仅限于定义他的方法
成员变量的作用域在整个类内部都是可见的
访问修饰符
Java
支持四种不同的访问权限:
修饰符 | 说明 |
---|---|
public | 共有的,对所有类可见。 |
protected | 受保护的,对同一包内的类和所有子类可见。 |
private | 私有的,在同一类内可见。 |
默认的 | 在同一包内可见。默认不使用任何修饰符。 |
注意:protected
不能修饰类和接口,接口的成员变量和成员方法不能声明为protected
。另外,类和接口不能声明为private
。
import语句
import
语句与C语言中的 #include
有些类似,语法为:
import package1[.package2…].classname;
package
为包名,classname
为类名。例如:
import java.util.Date; // 导入 java.util 包下的 Date 类
注意:import
只能导入包所包含的类,而不能导入包。
创建对象
类名 对象名 = new 类名()
通常使用new
关键字来创建一个新对象,例如:
//访问修饰符、class关键字和类名
public class Main{
//主方法入口,void:main()方法是不需要返回值的,static:表明方法是静态的,不依赖类的对象的
public static void main(String[] args) {//String[] args:定义了一个字符串数组参数
//创建对象,对象名为test
Main test = new Main();
}
}
程序运行时,对象有五个不同的地方可以存储数据:
1):寄存器。这是最快的存储区
2):堆栈。位于通用RAM中,但通过堆栈指针可以从处理器那里获得直接支持。指针若向下移动,则分配新的内存;若向上移动,则释放那些内存。这是一种快速有效的分配存储方法,仅次于寄存器
3):堆。一种通用的内存池,用于存放所有java对象。堆不同于堆栈的好处是编译器不需要知道存储的数据在堆里存活多长时间。
其余两种不做介绍。详情请见:Thinking in java
System.out.print(" ");向控制台输出" "里面的内容后不换行
System.out.println(" ");向控制台输出" "里面的内容后换行;
操作数组
数组是一个简单的线性序列,数组具有效率、类型和保持基本类型的能力。数组标识符其实只是一个引用,指向在堆中创建的一个真实对象,这个数组对象用以保存指向其他对象的引用。
Java
中操作数组只需要四个步骤:
1、 声明数组
语法: 数据类型[ ] 数组名;
或者 数据类型 数组名[ ];
2.分配空间
简单地说,就是指定数组中最多可存储多少个元素
语法: 数组名 = new 数据类型 [ 数组长度 ];
3、 赋值
分配空间后就可以向数组中放数据了,数组中元素都是通过下标来访问的
4、 处理数组中数据
我们可以对赋值后的数组进行操作和处理,如获取并输出数组中元素的值
public class Main{
public static void main(String[] args) {
double list[] = {2.0,13.1,3.1,0.5,1.1};
//输出所有数组元素
for(double element:list){//冒号:其实就是映射
System.out.println(element);
}
}
}
二维数组
1.声明数组并分配空间
数据类型[][] 数组名 = new 数据类型[行的个数][列的个数];
或者
2.数据类型[][] 数组名;
数组名 = new 数据类型[行的个数][列的个数]
赋值
数组名[行的索引][列的索引] = 值;
Arrays 类
语法: Arrays.sort(数组名);
可以使用 sort( )
方法实现对数组的排序,只要将数组名放在 sort( )
方法的括号中,就可以完成对该数组的排序(按升序排列)
将数组转换为字符串
语法: Arrays.toString(数组名);
可以使用 toString()
方法将一个数组转换成字符串,该方法按顺序把多个数组元素连接在一起,多个元素之间使用逗号和空格隔开
变量的作用域
在Java
中,变量的作用域分为四个级别:类级、对象实例级、方法级、块级。
类级变量又称全局级变量或静态变量,需要使用static关键字修饰。
对象实例级变量就是成员变量,实例化后才会分配内存空间,才能访问。
方法级变量就是在方法内部定义的变量,就是局部变量。
块级变量就是定义在一个块内部的变量,变量的生存周期就是这个块,出了这个块就消失了,比如 if、for 语句的块。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。