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之后的语句,而重新判断循环控制的条件,继续循环,直到循环条件的值为假时退出循环
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值