java基础语法
今天学习的是java基础语法包括:包装类、表达式、结构化编程
1、java基础语法
- 标识符:由字母、数字、下划线_、 构 成 , 数 字 不 能 开 头 , 与 构成,数字不能开头,_与 构成,数字不能开头,与慎用,标识符区分大小写,长度无限制。
- 编码规范:
1、类与接口首字母大写,大写字母分词 大驼峰
2、方法、变量名称首字母小写,大写字母分词 小驼峰
3、包名称全小写,使用域名反转的方式定义
4、常量全字母大写 - 局部变量:变量名、变量类型和作用域
Java属于强类型编程语言,变量类型一旦声明,则不能进行修改
数据类型可以决定变量所需要的存储空间大小和对应的处理逻辑
作用域是指变量生效的范围,从定义的位置开始,到所在的{}结束为止 - 基本数据类型
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
2、包装类
- 包装类即基本数据类型的对象化,包装类名称,除了char(Character)与int(Integer)外,其他均为对应基本类型首字母变大写
- 基本数据类型无法存入集合,包装类无法进行运算
java面向对象,而基本数据类型不是对象,引入基本数据类型主要是为了提高程序运行效率 - 抽象类java.lang.Number为所有包装类的父类,
其中定义了方法: 包装类Value(); (这里的包装类只包括4类整形与2类浮点型)
Double dd=new Double(1.23);
System.out.println(dd.intValue()); //将Double类型的数据转换为int
- 方法:包装类MIN_VALUE与包装类MAX_VALUE,该包装类的最大值与最小值(这里的包装类包括4类整形与2类浮点型以及Character)
java.lang.Boolean
- 构造函数:Boolean(boolean)和Boolean(String)。当字串是”true”的时候则创建boolean值为true的对象,否则创建boolean值为false的对象
Boolean a =new Boolean("true"); //true
Boolean b=new Boolean("abcd"); //false
- booleanValue():boolean //将Boolean转换为boolean
Boolean a = new Boolean("true");
boolean b = a.booleanValue();
- Boolean.valueOf(boolean) / (String):Boolean//将字符串类型的数据转换为boolean类型
Boolean b1=Boolean.valueOf("true");
boolean b2=Boolean.valueOf("false");
针对字符串和boolean类型的转换一般不使用这么繁琐的方法
String str="false";
Boolean bb="true".equals(str); //使用字符串比较的方法equals,这个方法可以进行字符串内容的比较,如果内容相等返回为true,否则false
System.out.println(bb);
java.lang.Character
- Character.isUpperCase(char)判断字符是否为大写 / isLowerCase(char)是否为小写:返回值为boolean
Character.toUpperCase(char)将字符转换为大写 / toLowerCase(char)将字符转换为小写:返回值为char
Character.isDigit(char) / isLetter(char) / isLetterOrDigit(‘5’) //判断是否为数字/Unicode字母/者字母:boolean
java.lang.Integer(Byte、Short、Long)
- Integer.toString(int数据,int进制) 将数据转换为int进制的字符串。
- Integer.toHexString(int)是16进制;Integer.toOctalString(int)是8进制;Integer.toBinaryString(int)是2进制的。
- Integer.parseInt(String,int进制):int
将字串按照int进制转换为10进制的整数Integer.parseInt(“-FF”,16)=-255 4、
Integer.valueOf((String,int进制):Integer
将字串按照int进制转换为10进制的整数对象。
Integer.parseInt(“-FF”,16)=new Integer(-255)
valueOf和parseInt的区别
- public static Integer valueOf(String s) throws NumberFormatException 返回值得类型为包装类,底层实现其实就是parseInt
public static Integer valueOf(String s) throws NumberFormatException {
return Integer.valueOf(parseInt(s, 10));
}
java.lang.Double(Float)
-
Double.valueOf(String):Double和Double.parseDouble(String):double,
-
数值与字串的转换
数值转换为字串有3种方法: String s=String.valueOf(i)=Integer.toString(i)=””+i;
字串与数值的转换
字串转为数值型有2种方法: int i=Integer.valueOf(s).intValue(); int i=Integer.parseInt(s) / (s,int进制) -
int和Integer的区别
int是常说的整形数字,是Java的8个原始数据类型Primitive Types(boolean、byte 、short、char、int、float、double、long)之一。Java语言虽然号称一切都是对象,但原始数据类型是例外。Integer是int对应的包装类,它有一个int类型的字段存储数据,并且提供了基本操作,比如数学运算、int和字符串之间转换等。在Java 5中,引入了自动装箱和自动拆箱功能boxing/unboxing,Java可以根据上下文自动进行转换,极大地简化了相关编程。
基于大部分数据操作都是集中在有限的、较小的数值范围,在JDK1.5中新增了静态工厂方法valueOf,其背后实现是将int值为-128到127之间的Integer对象进行缓存,在调用时候直接从缓存中获取,进而提升构建对象的性能,也就是说使用该方法后,如果两个对象的int值相同且落在缓存值范围内,那么这个两个对象就是同一个对象;当值较小且频繁使用时,推荐优先使用整型池方法(时间与空间性能俱佳)。
如果有线程安全的计算需要,建议考虑使用类型AtomicInteger、AtomicLong 这样的线程安全类。部分比较宽的基本数据类型,比如 float、double,甚至不能保证更新操作的原子性,可能出现程序读取到只更新了一半数据位的数值
常量
常量就是指在程序执行期间其值不能发生变化的数据,常量是固定的。如整型常量123,实型常量1.23,字符常量’A’,布尔常量true等
Java中的常量用final来实现,例如final double PI=3.14;注意声明常量的时候可以不赋值,而在构造器结构中赋初值,但是若在声明时同时进行了赋值,则不可以在初始化结构中赋值了
3、表达式
表达式就是运算符、操作数以及方法调用的序列,用来说明某个计算过程并返回计算结果
按照运算符功能来分,基本的运算符分包括算术运算符、关系运算符、位运算符、条件运算符等
- 算术运算符 +、-、*、/、%、++、–
- 关系运算符 >、<、>=、<=、==、!=
- 逻辑运算符 &&、 ||、 !。注意:逻辑计算支持短路操作
- 位运算符 &、|、^、~、<< 、 >>、>>>。注意:为运算符不支持短路操作 [考点]
- 赋值运算符 =,+=,-=,*=,/=
- 三目条件运算符(?:)规则是完全一致的,使用的形式是: x ? y:z;
算术运算符
+、-、*、/、%、++、–
- 整除:参与运算的双方都是整数 10/3=3而不是3.33333
10./3=3.333…这里由于10.是浮点数,则3会自动转换为大类型并参与计算,所以最终是 10.0/3.0的计算结果 - %求余(取模) 10%3=1实际就是10除以3求余数
求余计算可以用于浮点数。浮点数没有整除的概念,只能针对计算结果进行强制类型转换(窄化操作) - ++和–是单目运算符(一元运算符)
i++等价于i=i+1
i–等价于i=i-1
i++是先取值后计算,++i是先计算后取值
比较运算符
>、<、>=、<=、==、!= 用于判断两个数据之间的大小关系,计算结果为boolean,如果成立返回为true,否则为false
浮点数无法精确存放
工具类Math
Math中包含一些常见的数学计算的实现,例如三角函数、反三角函数等
- abs()的方法实现求绝对值
- floor(double):double 从小到大逼近参数最大整数 (向下取整)
- ceil(double):double从大到小逼近参数最小整数 (向上取整)
- round(double):double 四舍五入,计算时和符号无关
- pow(double a, double b):double 计算a的b次方
- sqrt(double a):double 针对a进行开根号计算
逻辑运算符
&&与、 ||或、 !非
- && 同真则真,其余为假
- || 同假则假,其余为真
- ! 非真则假,非假则真
短路运算,在进行&&和||的运算时,如果第一个条件就可以判定运算结果,则第二个条件不会执行
位运算符
&按位与、|按位或、^按位异或、~按位取反、<<左移位 、 >>右移位,空位置补符号位上的值、>>>无
符号右移位,空位置补0
注意:为运算符不支持短路操作
赋值运算符
=,+=,-=,*=,/=
int k=100; 含义是将100赋值存储在k对应的存储单元中
k=k+3可以简写为k+=3
-= */ /=类似
三目条件运算符
规则是完全一致的,使用的形式是: x ? y:z;
可以和if …else 语句互换
其他运算符
- 对象运算符instanceof用来判断一个对象是否是某一个类或者其子类的实例。如果对象是该类或者其子类的实例,返回ture;否则返回false
- 点.运算符用于访问对象实例或者类的类成员函数
- new运算符 用于创建一个新的对象或者新的数组
4、结构化编程
结构化程式设计Structured programming是1960年代开始发展起来的一种编程典范。它采用子程序、程式码区块、for循环以及while循环等结构来取代传统的goto。希望借此来改善计算机程序的明晰性、品质以及开发时间,并且避免写出面条式代码。
已经证明,任何复杂的问题都可以三种基本算法结构来描述:顺序、选择、循环。因此用计算机语句描述的程序也包含三种基本结构
设计方法:使用流程图表示算法
流程图是流经一个系统的信息流、观点流或部件流的图形代表。在企业中,流程图主要用来说明某一过程。这种过程既可以是生产线上的工艺流程,也可以是完成一项任务必需的管理过程。常见的绘制工具有Visio、PowerDesigner等
- 圆角矩形表示“开始”与“结束”;
- 矩形表示行动方案、普通工作环节用;
- 菱形表示问题判断或判定(审核/审批/评审)环节;
- 用平行四边形表示输入输出;
- 箭头代表工作流方向。
结构化程序设计原则
自顶向下、逐步求精、模块化
结构化程序设计还有一个重要的规定,那就是只能使用顺序结构、选择结构、循环结构这三种基本结构
(或由它们派生出来的结构)来定义程序的流程
条件分支语句
Java语言提供了两种判断语句:if语句和switch语句。
1、if 语句:
- if(条件表达式){ 代码块 }; //满足条件表达式则执行代码块,如果代码块中只有一条语句,则{}可以省略
- if(条件表达式){
代码块1; //0条到多条可执行语句,含义是当【条件表达式】返回值为true时执行这里
}else{
代码块2; //当条件为true时执行[代码块1],否则执行【代码块2】,不可能出现都执行或者都不
执行的情况
} - if(条件表达式1){
代码块1;
}else if(条件表达式2){ //允许多次出现
代码块2;
…
}else{ //当上面所有条件都不成立时执行
代码块n;
}
if/if…else/if…else if…else允许嵌套
2、标准输出
System.out.println(obj) 参数obj可以是任意类型的数据,实际上其它类型的数据是自动转换为字符串类
型进行输出显示
3、键盘数据录入
Scanner用于实现接收用户的键盘录入数据
Scanner sc = new Scanner(System.in);
int i = sc.next数据类型();从键盘上接受一个用户录入的数据
switch开关分支语言
多个分支的等值判断时,使用switch比if使用方便
switch (表达式) { //表达式得到一个确定的值,与下列值进行比较,满足则执行相应的代码块
case 值1:
操作 1 的语句;
break;
case 值2:
操作 2 的语句;
break;
….
case 值n :
操作 n 的语句;
break;
default: //所有值都不满足,执行default
默认语句;
}
- switch后面的表达式允许的数据类型:
允许byte\short\int,但是不允许long类型
允许字符类型和字串类型[特殊点,要求JDK1.7+],究其本质是比较字符串的hashcode值
循环结构
在Java语言中存在的while、for和do-while循环语句
while循环
while是Java中最基本的循环语句,满足条件才执行循环体,如果不满足条件则不执行。所以有可能循环体一次都不执行。
- 语法格式: while (继续循环的条件) { 循环所执行的代码; }
do-while循环
do-while 循环执行某些语句,直到指定的条件为假。此循环确保循环体至少执行一次。
语法格式: do{循环所执行的逻辑;}while(继续循环的条件);
for循环
for 循环主要用于按预定的次数执行语句或语句块
语法: for(语句1,一般用于初始化循环控制变量; 语句2,循环继续执行的条件; 语句3,步进语句){ 循环体语句;}
三种循环的选择
1、如果不能提前预知循环次数,则使用while或者do/while循环,而for循环一般用在可提前预知循环次数的场景下
2、while循环可以出现一次都不执行的情况,但是do/while循环无论如何循环体都会被执行一次
循环中使用的跳转语句
Java提供了三种跳转语句:break、continue以及return,用来强制转移程序执行的顺序
- break打破当前循环
break语句除了与switch结合使用外,还用来强制中断当前的循环,不再执行循环体中break后面的语句而退出循环。譬如在后续将学到从数据库里循环取出数据,用来验证用户的用户名是否正确。如果当用户名符合某一条数据时,就需要用到break语句来结束当前的循环验证 - continue继续
continue语句的功能是,在循环语句中,当碰到continue时,将不再执行循环体continue之后的语句,而重新判断循环控制的条件,继续循环,直到循环条件的值为假时退出循环
262

被折叠的 条评论
为什么被折叠?



