JAVA编程基础

标识符与关键字

标识符就是一个名称,用来标识JAVA程序中的变量名、类名、成员方法名、接口名等。

关键字又称为保留字,是JAVA语言预先规定的、具有固定含义的一些英文单词。

标识符的命名规则:

(1)不能使用JAVA关键字来作标识符,如int、do、for等

(2)只能由字母、数字、美元符号、下划线这几种字符组成、且第一个字符不能为数字。注意这里的字母也可以包括其他语言的”字母“像汉字的”云“就是一个汉字”字母“

(3)不能是JAVA语言中的某些直接量,如false、true、null

(4)区分大小写

数据类型及直接量、变量

数据类型

基本数据类型:字节(byte)、短整数(short)、整数(int)、长整数(long)、单精度浮点数(float)、双精度浮点数(double)、字符(char)和布尔(boolean)

引用数据类型:类、数组、枚举、接口等类型。

直接量和变量

默认整数直接量是int型、对于长整型直接量要在后面加一个L(l);

默认的实数直接量是double型、对于float型直接量要在后面加一个D(d);

字符型直接量是用单括号引起来的一个字符;

字符串直接量是用双引号引起来的一串字符,是一种引用数据类型;

布尔型直接量只有两个值:true和false;

应用型直接量null表示空的引用值,是引用类型的数据,该引用不指向任何对象。

运算符和表达式

运算符的分类:算术运算符、复制运算符(简单和复合)、逗号运算符、关系运算符、逻辑运算符(条件和逻辑两种。条件有时可以不用执行右边的,所以有时称为短路运算符)、条件运算符、位运算符、其他运算符

JAVA中也是整除,几个类型的数据运算结果也会保存成其中类型最大的数据类型。不过JAVA中的%可以针对浮点数。

运算符存在优先级和结合性

表达式:表达式是由运算符及其操作数组成的。表达式可以简单到只有变量的名字,也可以复杂到……

类型转换:

自动类型转换

1、两种类型是兼容的

2、目标类型高于源类型(谁的字节大)

不满足以上所有条件的不能发生自动转换

ps:整形换成浮点型是可以的,因为任何浮点类型的范围都要比整形的范围大。另外大家都知道char和int是相兼容的。

强制类型转换

当把高精度的变量的值赋给低精度的变量时,通常可以通过执行窄化而被强制转换为另一种类型。强制类型转换的一般语法如下:(目标类型)表达式

ps:有写强制转换是不允许的(例如boolean型不可以强制换转成int型)

控制语句

if语句与if-else语句

ps:这里的if的条件只能是布尔表达式、即运算结果为布尔值的表达式,其值为true或则false。而不能用数字值,这与c/c++不同

switch语句

ps:在JDK7之前,swtich表达式值的类型只能是与整数类型兼容的类型,包括基本类型char、byte、short、int、枚举类型等。在JDK7中增加了一种可以在switch语句中使用的表达式值:字符串类型

for(表达式1;表达式2(布尔表达式);表达式3)

语句或语句块

while(布尔表达式)

语句或语句块

do{

语句或语句块;

}while(布尔表达式);

for-each循环语句

for(类型 变量名:数组名|集合名)

语句或语句块

break和continue语句

break [标号]

continue 【标号】

其中,不带标号的break语句跳出它所在的循环语句或swtich语句;不带标号的continue语句用来结束本次循环,跳过循环体后面尚未执行的语句,截至进行循环条件的判断,以决定是否继续循环。

带标号的break语句跳出标号所指定的语句块,带标号的continue语句结束标号指明的外层循环中本次循环,转而执行标号指明的外层循环的下一次循环

标号的定义  语句标号:语句;

跳转:continue 语句标号

类、对象

在JAVA编程中,并不像现实世界当中那样事先就存在现实的”对象“,而是需要先定义好类,将类作为构造对象的模板或蓝图,再来创建类的实例,即对象。然后调用对象向外界所提供的操作接口,从而完成相应的功能

成员变量:[修饰符]数据类型 变量名或带初始化的变量名列表    ps:数据类型也可以是引用类型

成员方法:[修饰符] 返回类型 方法名称(参数列表){

创建对象的一般格式

类名 对象名=new 类名([参数表]);

对象名是一个引用变量,存储的是对象的引用(生成的对象的存储地址)。对象的创建是通过运算符”new“来进行的

使用对象

对象名.成员变量

对象名.方法名称

ps:在一个成员方法中,如果参数列表里没有相同变量名的变量,方法体中的变量就指的是本对象的成员属性。如果有参数列表里同名的话,要使用this.变量名才能指定这是本对象的成员属性

数组的使用(元素类型既可以是基本数据类型,也可以是引用数据类型)

一维数组有两种声明格式:数组元素类型 变量名[]或者数组元素类型[] 变量名

在声明数组变量时方括号力不用指明长度。数组变量的声明仅仅是创建了一个数组对象的引用,要想使用数组对象还必须为它分配内存空间,即创建数组

数组对象的创建

第一种 new 数组元素数据类型[数组元素个数].例如new int[10],这段代码只是创建了具有10个整形数组元素的数组对象。这种并没有赋初值,所以数组会被赋予对应数据类型的默认初始值。例如int的默认初始值为0……

第二种,初始化来创建数组对象。比如:数组元素类型 变量名[]={数组元素1,数组元素2,……,数组元素n}

创建数组对象之后,就可以使用数组了,包括为数组元素赋值,访问数组元素值和获得数组长度。下标都是从0开始的

二维数组

当数组元素的类型是数组类型时,就构成了多维数组。多维数组重最常见的是二维数组。如果一维数组中的每个元素类型都是一个一维数组,那么它就是一个二维数组

二维数组的变量声明

二维数组有两种声明格式:数组元素类型 变量名[][]  或者   数组元素类型[][] 变量名

同样只声明一个二维数组的变量,也只是声明了一个引用变量

二维数组对象的创建

变量名=new 数组元素类型【第一个元素个数】【第二个元素个数】

第二种方式分别为每一维创建数组对象

a=new int[2][];

a[0]=new int[2];

a[1]=new int[3];

可见这种创建方式下,二维数组每一行的数量可以不是一样的

第三种通过赋值的方式

int a[][]={{1,2,3},{4,6}}

字符串处理

在JAVA中,字符串是作为对象来实现的。JAVA提供的标准报JAVA.lang中封装的String类和StringBuffer类就是用于处理字符串的类。String和StrigBuffer这两个类分别用于处理不变字符串和可变字符串。不变字符串是指字符串一旦创建,其内容就不能改变

JAVA中的字符串分为直接量和变量两种。字符串直接量是使用双引号括起来的一串字符,是一个String类的对象。可以使用String类中的各种方法。如果程序中出现了字符串直接量,系统将自动为其创建一个String类的对象。这个创建过程是隐含的。

对于字符串变量,它是一个字符串对象的引用,在使用之前同样要进行声明

声明字符串变量

String 字符串变量名;

创建字符串对象

String s1=new String("Hello Dafanzi");

也可以用字符数组来创建字符串,例如

char chars[]={'a','b','c'};

String s1=new String(chars);

也可以把字符串直接量(隐含创建的字符串对象)赋给变量名

String s1="Hello Dafanzi";

String类中的常用方法

int length();返回当前字符串的字符个数

char charAt(int index);返回字符串中index处位置的字符

boolean equals(String str);比较两个字符串的内容是否相等,区分大小写

boolean equalsIgnoreCase(String str);比较两个字符串的内容是否相等,不区分大小写

String toLowerCase()将当前字符串中所有字符转换为小写形式;

String toUpperCase()将当前自复查un中所有字符转换为大些形式

String substring(int index);截取当前字符串从index开始到末尾的字串

boolean startWith(String str);测试当前字符传是否以str字符串开头的

将当前字符串中的c1字符转换为c2字符

StringBuffer类

StringBuffer对象中处理的是可变字符串

StringBuffer对象的创建可以采用多种方式进行,例如

StringBuffer s=new StringBuffer();

这就创建了一个内容为空的StringBuffer对象。如果需要创建带有内容的StringBuffer对象,则可以采用如下方法

StringBuffer s=new StringBuffer("abc");

StringBuffer类的基本方法是append()和insert()。

ps:字符串常量池中具有相同字符序列的字符串只对应一个实例对象

对象转化为字符串:每个类中都具有toSting方法在把类当作字符转的时候调用(继承自 Object),但默认的的toString方法不够,一般我们都重写它

包被用来组织一些列类或接口。使用包可以使类的管理更清晰,更有条理。包可以嵌套使用,一个包可以嵌套多个包,就像一个文件夹内可以含有多个子文件夹一样。JAVA编译器使用文件系统目录来保存包。

包的申明很简单,只要将package语句作为Java程序文件的第一行语句,这样,该文件中所定义的任何类都将属于所指定的包。通常将很多功能相近或者关系密切的类及接口放在同一个包中,以方便管理和使用

import语句

import 包名.*  这种形式使得该包中所有可访问的类都可以在程序中直接用类名来访问

import 包名.类名 这种形式允许在程序中直接用类名来访问包中的某一个具体类。

ps:如果没有用import导入别的包的类,需要用new 包名.类名来使用这个类,在导入两个包后,两个包中有同样的名字的类时使用其中任一个类只能这样使用。

从JDK5.0版本起,import除了导入包之外,还可以导入静态成员。

import static 静态成员

JAVA标准包简介

1、java.lang包:它提供了编写JAVA程序时所需要的最基本的类。例如Object类、Math类、String类、System类等。Object类是除他自身以外的所有其他类的父类.这个类在开发JAVA程序时,系统会自动为程序导入

2、java.applet包:它提供了用来创建Applet的必须类,仅包含少量几个接口和一个Applet类

3、java.awt包:它是用来构建图形用户界面(GUI)的包

4、java.awt.event包:定义了不同类型的事件和处理接口

5、java.io包:提供了输入和输出功能

6、java.util包:提供了一些实用的类。例如,处理时间的Date类

7、java.net包:提供了网络编程的相关类

8、java.sql包:提供了访问和操作数据库的类和接口

Java程序结构

(1)包的声明语句

(2)一些列import语句

(3)类或接口的定义

一个java程序文件中只能有一个public类,该类的名称必须与所在程序文件的文件名相同。java程序文件中的其他类往往是public类的辅助类。经过编译,每个类都生成相应的class文件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,482评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,377评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,762评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,273评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,289评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,046评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,351评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,988评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,476评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,948评论 2 324
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,064评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,712评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,261评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,264评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,486评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,511评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,802评论 2 345

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,581评论 18 399
  • Win7下如何打开DOS控制台? a:开始--所有程序--附件--命令提示符 b:开始--搜索程序和文件--cmd...
    逍遥叹6阅读 1,587评论 4 12
  • 殘垣斷壁的圍牆,吟唱著無盡的淒涼,見證了時代的滄桑,訴說著曾經的輝煌。偶遇棄窯不禁遐想,這裡曾經是誰的家園,...
    sam_2017阅读 282评论 0 0
  • 大多数程序员都有一个创业的梦想,做了一个网站、论坛、爬虫,想试试用户的反馈,如果直接就购买云服务器,感觉很不划算,...
    odirus阅读 3,317评论 0 5
  • 标题有些悲观,确很现实。有些时候发生的事,没有什么好的解决办法,比如失恋,离婚,亲人宠物死去,只能硬扛着满怀希望地...
    就爱乱跑阅读 229评论 0 0