Java基础:Java语法基础
来源:互联网 发布:淘宝裁决之镰 编辑:程序博客网 时间:2024/04/28 06:45
1.关键字
Java中的关键字是被Java体系赋予了特殊意义的单词,又称保留字,书写上所有字母都是小写;(1).用于定义数据类型的关键字:class,interface,byte,short,int,long,float,double,char,boolean,void(2).用于定义数据类型值的关键字:true,false,null;(3).用于流程控制的关键字:if,else,switch,case,default,while,do,for,break,continue,return;(4).用于定义访问控制权限的关键字:private,protected,public;(5).用于定义类,函数,变量修饰符的关键字:abstract,final,static,sysnchronized;(6).用于定义类与类之间关系的关键字:extends,implements;(7).用于定义建立实例及引用实例,判断实例的关键字:new,this,super,instanceof;(8).用于异常处理的关键字:try,catch,finally,throw,throws;(9).用于包操作的关键字:package,import;(10).其他修饰符关键字:native,strictfp,transient,volatile,assert;
2.注释
2.1 Java中的注释格式
(1).单行注释://注释文字
被注释的文字不会被JVM解释执行;
(2).多行注释:/* 注释文字 */
同样被注释的多行代码不会被JVM解释执行;
(3).文档注释:/** 注释文字 */
Java特有的注解,注释的内容可以被JDK的工具javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档;
注:多行注释和文档注释不能嵌套;2.2 Java中注释的作用
(1).用来添加文字信息,解释程序,提高代码阅读性;(2).用来调试程序;
3.标识符
标识符是Java中有开发人员自定义的一些用来标识的名称;标识符定义的原则:见名知意;标识符:由字母,数字,下划线,美元符组成,其中不以数字开头;标识符定义习惯:(1).包名:单词字母都小写;(2).类名接口名:单词首字母大写,多个单词首字母均大写,驼峰式;(3).方法名变量名:首单词小写,多个单词首单词小写,其他单词首字母大写;(4).常量名:所有字母均大写,多个单词间用下划线分隔;
4.常量
常量:不能改变的数值;(1).整数常量;(2).小数常量;(3).布尔型常量:true,false;(4).字符常量:单引号;(5).字符串常量:双引号;(5).空常量:null;
5.数制
二进制:每一位的取值只有0和1,8位一字节;十进制:Java7.0,以0b开头;八进制:以0开头,3位二进制;十六进制:以0x开头,4位二进制;在计算机内存中,所有的数据都是以二进制存在的;对于数值:都是以补码的形式存在,即正数就是其本身,负数就是其对应的正数的二进制取反加1,高位为1;
6.基本数据类型
Java语言是一种强类型语言,必须为每一个变量声明一种类型;*基本数据类型:
*数值型
*整数(1).byte:1字节;(2).short:2字节;(3).int:4字节,默认类型;(4).long:8字节,数据值后面加l/L标记;注:在Java中,整型的范围与运行Java代码的机器无关,这不同于C/C++针对不同的处理器选择最为有效的整型;Java程序必须保证在所有机器上都能都得到相同的运行结果,所有每一种数据类型的取值范围必须固定;*小数(1).float:单精度,4字节,数据值后面加f/F标记;(2).double:双精度,8字节,默认类型;*字符型
char:2字节,单引号标记;
注:区分字符1(char 1 = 49)和数字1,其Unicode编码不同;
Unicode:char a = 97;char A = 65;
*布尔型
boolean:true/false;
*引用数据类型:
(1).类
(2).接口
(3).数组
7.变量
(1).变量的概念:内存中的一个存储区域,该区域有自己的名称(变量名)和类型(数据类型),该区域的数据可以在同一类型范围内不断变化;
在内存中开辟一块空间对不确定的数据进行存储;
(2).为什么定义变量:用来不断的存放同一类型的常量,并可以重复使用;(3).变量的作用范围:一对{ 花括号内 }使用有效;(4).变量的初始化:
Java中不区分变量的声明和定义,在声明一个变量后必须使用赋值语句对变量进行显示初始化,不能使用没有被初始化的变量;
初始化时,变量使用final修饰,可以用来定义常量,只能被赋值一次;(5).定义变量的格式:数据类型 变量名 = 初始化值;
8.数据类型转换
Java程序在运行时,经常会需要将一种数值类型转换为另一种数值类型;(1).数据类型之间的正常转换;上图所示:实箭头表示无信息丢失的转换,虚箭头表示可能有精度损失的转换;当使用上面两种数字进行二元操作时,先要将两个操作数转换为同一种类型,然后进行计算;具体的转换原则可以用(if...else if...else)的形式表示如下:如果,两个操作数中有一个是double类型,另一个操作数就会转化为double类型;否则,如果,两个操作数中有一个是float类型,另一个操作数就会转化为float类型;否则,如果,两个操作数中有一个是long类型,另一个操作数就会转化为long类型;否则,两个操作数都将被转换为int类型;(2).强制类型转换cast:强制类型转化的格式是在圆括号中给出想要转换的目标类型,后面紧跟待转换的变量名;使用这样的类型转换方式可能会损失某些信息;如果试图将一个数值用一种类型强制转换为另一种类型,而又超出了目标类型的表示范围,就会截断成一个完全不同的数据值;使用实际的Java程序来演示类型转换;
/*eg:强制类型转换*/package com.zr.day02;class CastDemo{public static void main(String[] args){byte b = 1;b = b + 2;//计算时会出现错误:cannot convert from int to byte//右边的b在计算是时,其类型会自动提升为int型,计算结果为int型;b = (byte)(b + 2);//使用强制类型转换;System.out.println(b);}}
9.运算符
9.1 算术运算符
(1).加减乘除:+ - * /;(2).取模:%,取模运算符号只看左边被模数,右边模数不管正负;(3).自增自减:++ --,注意运算的前后顺序;(4).字符串连接符:+,字符串数据和任何数据使用“+”都是相连接,最终的结果为字符串;
9.2 转义字符
转义字符:使用反斜杠转变其后字符的含义;
\n:换行,linux系统下的回车符,DOS环境也可识别;\b:退格,相当于backspace键;\r:回车键,Windows系统中的回车符有两个字符组成:\r\n;\t:制表符,相当于Tab键;\':表示单引号;\":表示双引号;\\:表示反斜杠;
9.3 赋值运算符
(1).等于:=(2).加等:+=(3).减等:-=(4).除等:/=(5).模等:%=演示赋值运算符:package com.zr.day02;class DengDemo{public static void main(String[] args){byte b = 2;b = b + 3;//报错,cannot convert from int to byte;b+=5;//正常,作赋值运算,赋值时自动完成强转动作;}}
9.4 比较运算符
等于:==不等于:!=大于:>小于:<大于等于:>=小于等于:<=判断某对象是否是某类的实例:instanceof注:比较运算的结果都是布尔型;
9.5 逻辑运算符
逻辑运算符链接的是布尔型的表达式;与:&,左右两边的表达式都计算;或:|,左右两边的表达式都计算;非:!异或:^,相同为假,相异为真;短路与:&&,左边表达式为假时,不计算右边表达式;短路或:||,左边表达式为真时,不计算右边表达式;
9.6 位运算符
位运算符直接操作数据的二进制;
左移:<<,最低位补0,数值越来越大,移动n位后的值:原始值×(2的n次方);右移:>>,带符号移位,负数最高位补1,正数最高位补0;移动n位后的值:原始值/(2的n次方);无符号右移:>>>,不带符号的右移,不管正负数最高位都补0;与运算:&;或运算:|;异或运算:^;相同为0,相异为1;
注:一个数异或一个数两次还是原来那个数;/*需求:不使用第三方变量,交换两个变量的数值;思路:1.使用第三方变量临时存储;2.按照某种运算方式,对变量进行运算;*/package com.zr.day02;class YiHuoDemo{public static void main(String[] args){int m = 3;int n = 5;System.out.println("m="+m+",n="+n);//使用第三方变量临时存储;int temp = m;m = n;n = temp;System.out.println("使用临时变量:m="+m+",n="+n);m = 3; n = 5;//使用加法运算:其缺陷是可能会出现运算结果出现溢出;m = m + n;n = m - n;m = m - n;System.out.println("使用加法运算:m="+m+",n="+n);m = 3; n = 5;//使用异或运算:一个数异或另一个数两次结果还是这个数;m = m ^ n;n = m ^ n;m = m ^ n;System.out.println("使用异或运算:m="+m+",n="+n);}}
反码:~(波浪线),1变0,0变1;
9.7 三元运算符
三元运算的格式:(判断)条件表达式?表达式1:表达式2;
相较于if...else...语句:运算结果必须要有一个结果,if...else...语句可以没有结果;
10.语句
10.1 顺序语句
Java程序的执行默认情况下是从上到下顺序执行的;块作用域:块是指由一对花括号括起来的若干条简单的Java语句,块确定了变量的作用域,块可以嵌套;
10.2 判断语句
(1).if(条件表达式){ 执行语句 }
(2).if(条件表达式){ 执行语句 } else{ 执行语句 }
(3).if(条件表达式){ 执行语句 } else if(条件表达式){ 执行语句 } ...可以多组... else{ 执行语句 }
为一个整体,只要有一个if满足条件就执行结束;
10.3 选择语句
(1).switch语句的格式:
switch(表达式值){
case 取值1:............break;case 取值2:............break;.....多组....default:.............break;
}
(2).switch语句可以接受的表达式类型:byte,short,int,char;JDK5.0可以接收枚举类型的值,JDK7.0可以接收字符串类型的值;(3).case代码块和default代码块在书写上可以没有顺序,但是在运行的时候,总是先执行case代码块(不论default代码块是在case块的前面还是后面);(4).switch语句的结束:要么执行到break语句,要么执行到switch语句的大括号结束;(5).穿透现象:如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,知道遇到break或者大括号结束;注:if语句和switch语句的比较
如果判断的具体数值不多,而且符合byte,short,int,char这四种类型,建议使用switch语句;如果对区间进行判断,对布尔值进行判断,使用if语句,if语句的使用范围更广;
10.4 循环语句
当需要对某些语句执行很多次的时候就使用循环结构;循环结构可以嵌套;
(1).while(条件表达式){ 执行语句 }(2).do{ 执行语句 }while(条件表达式);(3).for(初始化表达式;循环条件表达式(boolean);循环后的操作表达式){ 执行语句 }
初始化表达式和循环后的表达式可以有多条语句,语句之间用逗号隔开;条件表达式必须要能判断真假,否则编译错误;使用for循环嵌套打印九九乘法表:/*需求:使用for循环嵌套实现九九乘法表的打印;*/package com.zr.day03;class ForForDemo{public static void main(String[] args){for(int x=1; x<=9; x++){for(int y=x; y<=9; y++){System.out.print(x+"*"+y+"="+(x*y)+"\t");}System.out.println();}}}打印结果:
注1.while语句和do...while...语句:
while语句先判断条件,只有条件满足才执行循环体;
do...while...语句先执行循环体,再判断条件,无论条件是否满足,循环体至少会被执行一次;
注2.while语句和for语句:
while语句和for语句可以互换,区别在于for为了循环而定义的变量在for循环结束后就会在内存中释放,而while循环使用的变量在循环结束后还可以继续使用;
注3.无限循环:
while(true){ ... }或者for(;;){ .... },并不确定到底要循环多少次,而是根据某些条件来控制循环;
10.5 中断语句
(1).break语句:用于选择结构和循环结构;跳出当前循环;(2).continue语句:用于循环结构;结束本次循环,继续下次循环;(3).使用标号可以标识某个循环结构,break 标号或者continue 标号,可以跳转到指定的循环结构执行;(4).当break和continue单独存在时,语句后面不能出现任何语句,因为无法执行到;
11.方法/函数
11.1 方法的概念:
Java中的方法也可以称之为函数,方法就是定义在类中的具有特定功能的一段独立的小程序;只有在被调用时才会执行;定义函数可以将功能代码进行封装,便于对该功能的复用;11.2 方法的格式:
修饰符 返回值类型 方法名(参数类型 形式参数1,参数类型 形式参数2,...,参数类型 形式参数n)
{ //方法体
执行语句;
return 返回值;
}
(1).返回值类型:方法运行后的结果的数据类型,如果没有具体的返回值,则函数的返回值类型定义为void;
(2).参数类型:形式参数的数据类型,可以没有参数,即参数列表为空;
(3).形式参数:变量,用来存储调用函数时传递给方法的实际参数;
(4).实际参数:由调用者传递的数据;
(5).return:用于结束函数,如果方法返回类型为void,return语句可以省略;
(6).返回值:返回给调用者的值;
(7).方法是定义在类中的,在方法内部只能调用方法,不能在方法内部定义方法;
11.3 如何定义方法:
(1).方法是一个独立的功能,那么该功能的运算结果是什么应该先明确,即明确方法的返回值类型;
(2).接下来明确在定义该功能的过程中是否需要未知的内容参与,即明确方法的参数列表;
方法的参数列表是有顺序的;
11.4 方法的重载:OverLoad
当类中定义的功能相同,但是参与运算的未知内容不同时,可以定义一个相同的方法名称来表示该功能,为方便阅读,通过参数列表来区分不同的同名方法;
方法的重载和方法的参数个数和参数类型以及参数列表的顺序有关,和函数的返回值类型等没有关系;
- [Java 基础]基础语法
- Java基础:Java语法基础
- java基础:java语法基础
- JAVA基础.JAVA基础语法
- 【Java基础】Java基础语法
- JAVA-Java基础语法
- JAVA基础 之 语法基础
- Java基础之基础语法
- JAVA基础之一:基础语法
- java基础之语法基础
- Java基础--基础语法1
- Java基础--基础语法2
- 【Java基础 一】---基础语法
- Java基础-1、基础语法
- Java语法基础-计算机基础
- java最基础语法
- java基础语法--标识符
- java基础语法--数据类型
- google面试
- 并查集 HDU1232 畅通工程
- WordPress注册支持中文用户名的解决办法
- Javascript:关于JS的全局变量跟局部变量 经典案例!!!
- 2014年9月5日
- Java基础:Java语法基础
- android自带Json API
- datatable 和XML转换
- android压力测试,monkey
- 面向对象设计基本原则
- c# socket传送大文件分享代码
- XSD
- 无线安全配置(wifi 认证,加密)
- 好用SVN工具kdesvn介绍