Java基础语法

简介: Java基础语法

Java基础语法


回顾

1 计算机组成 :硬件和软件
  硬件:输入设备、输出设备、cpu、存储器、其他设备
  软件:系统软件、应用软件
2 DOS命令
  cd 改变当前目录  
    cd .. 上一级目录
    cd \  根目录
    cd  aaa\bbb\ccc
    d: 切换到D盘
  dir 列出当前目录下的文件和文件夹
    /p  /s  /w  /o
  md 创建目录 
      创建一级目录和多级目录
      创建.aaa
    rd 删除目录 (空目录)
    del 删除一个或一组文件
    copy 复制 只能复制文件 
      xcopy  myFile myPhoto  /s  /e
  cls 清屏
    exit 退出dos
    mspaint 打开画图板
    notepad 打开记事本
 3 Java 三个平台 
   Java SE  标准版   桌面应用程序
   Java EE  企业版   开发Internet应用程序 :淘宝,京东,移动
   Java ME  微型版   (不用)
 4 Java发展
    Java之父 :詹姆斯 高斯林
    jdk 1.0  96
    jdk 1.2
    jdk 1.5  jdk5.0  
    jdk 6.0
    jdk 7.0
    jdk 8.0  2014
    jdk 9.0
    jdk 10.0
    jdk 11.0
5 Java 运行核心机制
   jvm  Java虚拟机 Java跨平台的语言
   垃圾回收器 
6 jdk安装 和环境变量的配置
  添加 JAVA_HOME
    在path的前面加上  %JAVA_HOME%\bin;
7  第一个hello world  
   public  : 公共的
   class : 表示类
   HelloWorld: 类名
   static  :静态的
   void :无返回值 
   main: 主函数(方法),程序的入口
   String[] :字符串数组 
   args: 参数
   system.out.println("hello world"); 输出 “hello World"
8  print :没有换行
   println:有换行
   printf:格式化输出  %f  %.2f  %d   %s  %x (X)
9 注释  :
   Java注释有三种:单行注释、多行注释、文档注释
   // 单行注释 
   /*  .....
   ..... 多行注释
   .....
   */

今天任务

1.标识符
2.标识符命名规范和命名习惯
3.关键字、保留字
4.常量、变量
5.基本数据类型
6.运算符
1.1 什么是标识符
Java对包、类、方法、参数和变量等要素命名时使用的字符序列称为标识符。
1.2 标识符的命名规则
1. 由字母(含英、中、日、俄等)、数字、下划线(_)和美元符号($ 音:dollar)组成。
2. 不能以数字开头。
3. 区分大小写。
4. 长度无限制。(一般不要超过15个字符)
5. 不能是Java中的保留字和关键字。
1.3 标识符命名习惯
1. 标识符命名习惯:见名知意。
2. 变量名,方法名,参数名: 首字母小写,如果多个单词组成,第一个单词首字母小写,剩下的单词首字母大写(驼峰式命名法)
3. 类名:单词首字母大写,多个单词组成每个单词首字母大写(帕斯卡命名法)   

1.4 关键字、保留字

关键字:Java中有一些赋予特定的含义,有专门用途的字符串称为关键字(keyword)。全部为小写。
保留字:没有定义用途,但保留备用。goto、const

第二节:常量、变量


2.1 常量
也称为数据常量,程序运行中固定不变的数据。

整型常量:123 、100、200、250、500

  Java语言整型的三种表示形式: 
  十进制整数:如12, -314, 0,8,7。 
  八进制整数:要求以0开头,如0127表示八进制的127 。
  十六进制数:要求0x或0X开头,如0x1df3。

浮点数常量(小数) :3.14 float …


字符常量:’a’ char


布尔(逻辑)常量:true、false


字符串(String)常量:“a”、“abc”、“hello world”, “”


null常量:表示的引用为空对象


2.2 变量
变量其实是内存中的一块存储空间,使用变量名来访问这块空间。因此,每一个变量使用前必须要先声明,然后进行赋值(填充内容),才能使用,变量中存储的数据就是常量。

20191118212333479.jpg

2.3.1 变量声明、初始化

变量的使用:
 1. 先声明,再赋值(初始化)
  数据类型  变量名; 
  变量名 = 变量值;
  举例:int i; 
     i=100;
     i=200;
 2. 声明同时赋值
  数据类型  变量名 = 变量值;
    int j=20;

上机练习:


练习1:银行账户存储1000元,年利率是0.05,计算一年后账户余额?


要求:使用变量保存数据


练习2:使用变量存储数据,实现个人简历信息的输出


姓名,年龄,工作年限,技术方向、兴趣爱好


要求:使用变量保存数据


2.3.2 变量的分类

1. 按所属的数据类型划分:
  基本类型变量:持有原始值。
  引用类型变量:持有引用值。某个对象的引用,不是该对象本身
2. 按被声明的位置划分:
  局部变量:方法或语句块内部定义的变量
  成员变量:方法外部、类的内部定义的变量

2.3.3 局部变量和成员变量

1. 声明的位置不同:
 局部变量的作用域就是它所在的方法或语句块
 成员变量的作用域是整个类体。
2. 是否拥有默认值:
 成员变量有默认值
 局部变量没有默认值  

第三节:数据类型


Java数据类型可分为两大类:基本数据类型引用数据类型


基本数据类型:byte、short、int、long、float(单精度)、double(双精度)、char、boolean


引用数据类型:类、接口、数组、枚举、注解(后面讲)

20191118212359816.jpg

3.1 基本数据类型


整数型---- byte(字节), short(短整型), int(整型), long(长整型)


浮点型---- float(单精度浮点型), double(双精度浮点型)


字符型---- char


布尔型---- boolean


基本数据类型的存储长度

Java中所有的基本数据类型都有固定的存储范围和所占内存空间的大小,而不受具体操作系统的影响,以保证Java程序的可移植性 
byte: 1个字节 ,范围 -128 到 127
short: 2个字节 ,范围 -32768到 32767
int:4个字节 
long :8个字节
float:4个字节 -3.40E+38 ~ +3.40E+38   有效位数7-8位
double:8个字节 -1.79E+308 ~ +1.79E+308  有效位数15-16位
char:2个字节  0-65535   65536个字符
boolean:不确定
3.3 整数型
Java语言的整型数值默认为int型,如:int i = 3;
要声明long型可以加'l'或'L',如:long  l = 3L;
注意:在数值超过int的表述范围时(2147483647),需要加上l/L对long赋值
3.4 浮点型
float: 单精度浮点数(精度7,8位) 4个字节
double:双精度浮点数 (精度15,16位)  8个字节
Java浮点类型常量有两种表示形式
十进制数形式,必须含有小数点,例如:
3.14       314.0      0.314 
科学记数法形式,如
3.14e2      3.14E2      314E2 
Java浮点型常量默认为double型,如要声明一个常量为float型,则需在数字后面加f或F,如:
double  d = 3.14; float  f = 3.14f;
注意:float double存储的数据都是近似值。
3.5 字符型
char型数据用来表示通常意义上字符
char c = 'A';  char c2= '好';
Java字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示(Unicode是全球语言统一编码)
char  c1 = '\u0061';//相当于’a’
char c2=97;//ASCII美国标准信息交换码,相当于’a’
Java语言中还允许使用转义字符'\'来将其后的字符转变为其它的含义:
char c2 = '\n'; 

20191118212431959.png

//    \ 转义字符   可以将后面的n 转义成为 换行的操作
System.out.print("i的值= "+i+"\n");
System.out.print("y的值 = "+y);
System.out.print("f的值 = "+f);
System.out.println("c的值 = "+c);
// \t 水平制表符 
System.out.print("99\t98\t97\t96");
System.out.print("你好\"你好");
System.out.print("你好\\你好");
3.6 布尔类型
boolean类型适于逻辑运算,一般用于程序流程控制 
boolean类型数据只允许取值true或false,不可以用0或非0的整数替代true和false。
示例:
boolean  b = false;
boolean c = true;
3.7 基本数据类型总结

20191118212453937.jpg

3.8 基本数据类型的转换
1 基本数据类型之间的转换分为以下两种:
  *自动类型转换
  *强制类型转换
  特殊:boolean 类型不能转换成任何其它基本数据类型。
2. 自动类型转换:数据类型取值范围小的转为取值范围大的
    * byte ---> short--->int--->long--->float --->double
    * char---> int
    * byte,short,char三者在计算时会转换成int类型  (了解)
    * int整型常量和字符常量在合理范围内可以直接赋值给 byte、short、int、char (了解)
    上机练习1:
        某班第一次Java考试平均分81.29,第二次比第一次多2分,计算第二次考试平均分。
    如果一个操作数为double型,则整个表达式可提升为double型。
      double  score=81.29;
    double score2=score+2;
  上机练习2:
      byte b1=10;
    byte b2=20;
    byte b3=b1+b2; //有问题吗?
3. 强制类型转换:数据类型取值范围大的转为取值范围小的. 需要加强制转换符,也就是(要转换的数据类型)。
    long l = 100L;
  int i = (int)l;
    但有可能造成精度降低或数据溢出,使用时要小心。
    上机练习:
    去年Java所占市场份额是20,今年增长的市场份额是9.8,求今年所占份额?
    int beforeyear=20;
  int year=(int)(beforeyear+9.8);

20191118212554649.png

第四节:运算符和表达式


4.1 运算符的分类
1.算术运算符:+ 、 - 、 * 、 / 、 % 、 ++ 、 --
2.赋值运算符:= 、 += 、 -= 、 *= 、 /= 、 %=
3.关系运算符:> 、 < 、 >= 、 <= 、 == 、 !=
4.逻辑运算符:! 、 & 、 | 、 ^ 、 && 、 ||
5.位运算符:& 、 | 、 ^ 、 ~ 、 >> 、 << 、 >>>(了解)
6.字符串连接运算符:+
7.三目运算符 ?:  
4.2 算数运算符:

描述

运算符

运算符

描述

%

求余、取模

-

++

自增

×

-

自减

÷



上机练习1 : 有一个三位数,求十位上的数字   
// 123    2 
int a = 123;
int b = a/10%10;
//    123/10 12%10   2 
int c = a%100/10;
上机练习2:    
int d = 5;
System.out.println((d++));// 自身加1 
System.out.println((d));// 自身加1 
int e = d++ + 6;
System.out.println(" =e "+ e);// 自身加1 
// --   放在前面是先自身减一  在参与运算
//     放后面   先参与运算   在自身减一
int f = d-- + 6;
System.out.println(" f =  "+ f);// 自身加1 
byte z = -128;
byte w = --z;// ++  在临界值不会报异常,赋的值是在取值范围内转圈 
System.out.println("w=  "+ w);// 自身加1   
4.3 赋值运算符:

运算符

描述

运算符

描述

=

赋值 比如:int i=10

/=

除等于

+=

加等于

%=

模等于

-=

减等于



*=

乘等于



int  i = 34;
//i = i + 45;
i+=45;  
i-=45;
// i = i -45;
i*=45;
i/=45;
i%=45;    
System.out.println("i= "+ i);

上机练习


•要求:有一个四位数字的会员卡号,使用“/”和“%”运算符分解获得会员卡各个位上的数字,将各个位上数字求和


4.4 关系运算符:

运算符

描述

运算符

描述

==

相等于

<=

小于等于

!=

不等于

>=

大于等于

<

小于



>

大于



boolean b = 3>=3; // 关系运算符 最终的结果都是boolean类型的
boolean b2 = 3==2; // == 判断等号两边是否相等  如果相等就是true
boolean b3 = 3!=2; // != 判断等号两边是否不等   如果不等就是true
System.out.println(b3); 
4.5 逻辑运算符:^


逻辑运算符用于对boolean型数据进行运算,运算结果总是boolean型

运算符

描述

运算符

描述

&

逻辑与

&&

短路与

逻辑或

短路或

 ^

异或



!

逻辑非



public static void main(String[] args){
    //&逻辑与  或
    System.out.println(true&true);
    System.out.println(true&false);
    System.out.println(true|true);
    System.out.println(true|false);
    System.out.println(!true);
    //异或  : 不相同为真,相同为假
    System.out.println("-------------------");
    System.out.println(true^false);
    System.out.println(true^true);
    System.out.println(false^false);
    // && 短路 与
    System.out.println("***************");
    int num1=10;
    int num2=5;
    boolean b=num1<num2 && num1++>100; //num1<num2  false
    System.out.println(b);
    System.out.println(num1);
    //|| 短路或 
    boolean b2=num1>num2 || num1++>100;
    System.out.println(b2);
    System.out.println(num1);   
  }
4.6 位运算符(了解)

运算符

描述

运算符

描述

&

按位与

>>

右移

按位或

<<

左移

^

按位异或

>>>

无符号右移

~

按位取反



4.7 字符串连接符 +


如果字符串和基本数据类型变量、常量连接以后,结果变成了字符串。

System.out.println("Hello"+"World!");
System.out.println("Hello = "+ 5);// 字符串和基本数据类型变量 常量连接以后 都变成了 字符串
System.out.println("Hello = "+ 5+ 8);
System.out.println(5+"");
4.8 三目运算符 ? :


X ? Y : Z


X为boolean类型表达式,先计算x的值,若为true,整个三目运算的结果为表达式y的值,否则整个运算结果为表达式z的值。


示例:

//X ? Y : Z
// 1 X 必须是boolean类型表达式
// 2  Y Z 必须数据类型保持一致
int score = 99;
//boolean falg = score>80;
String str = score>80? "非常优秀" : "优秀";
char c = '男';
int i = c=='男'? 5 : (int)(4.0);
//  y 和  z  最好是保持数据类型一致
//  如果不一致  也必须保证 接收的  变量能够存储  y和  z的 数据类型
System.out.println(i);
// 需求: 大于90输出"非常优秀“,大于等于60”输出及格“,否则小于60输出”下个班见“
String str2 = score>90?"非常优秀":score>=60?"及格":"下个班见";
System.out.println(str2);
4.9 运算符的优先级

运算符

结合性

[].()(方法调用)

从左向右

!~++--(符号)

从右向左

*/%

从左向右

+-

从左向右

<<>> >>>

从左向右

<<=>>=instanceof

从左向右

==!=

从左向右

&

从左向右

^

从左向右

从左向右

&&

从左向右

从左向右

?:

从右向左

=

从右向左

4.10 表达式
表达式:符合一定语法规则的运算符和操作数的序列 
            i % 10
            a = 0 
       a==0      
            5.0 + a      
            (a - b) * c - 4      
            i < 30 && i % 10 != 0 
表达式的值和类型
* 对表达式中操作数进行运算得到的结果称为表达式的值 
* 表达式的值的数据类型即为表达式的类型 

第五节:Scanner简单使用

//Scanner的作用:实现键盘输入数据。
//Scanner的使用
//1 先导入Scanner  import java.util.Scanner; 
//2 创建对象   Scanner input=new Scanner(System.in);
//3 接收键盘录入的数据
import java.util.Scanner;
public class Demo11{
  public static void main(String[] args){
    Scanner input=new Scanner(System.in);
    //3.1接收字符串类型数据 next(),遇到空格截断 nextLine(); 遇到换行结束
    //String s=input.next();
    String s=input.nextLine();
    System.out.println(s);
    //3.2接收整型数据 nextInt();
    int num=input.nextInt();
    System.out.println(num);
    //3.3接收浮点数
    double d=input.nextDouble();
    System.out.println(d);
  }
}

需求:从控制台输入学员3门课程成绩(html,java,sql),编写程序实现


(1)Java课和SQL课的分数之差


(2)3门课的平均分

import java.util.Scanner;  //导入Scanner类
public class ScoreStat {
   public static void main(String[] args) {
         //创建对象
    Scanner input = new Scanner(System.in);
    System.out.print("htmls的成绩是:");
    int html = input.nextInt();     //html分数
    int java = input.nextInt();
         int sql = input.nextInt();
    int diffen;       //分数差
    double avg;       //平均分
     //省略输出成绩单代码……
    diffen = java - sql; //计算Java课和SQL课的成绩差
    System.out.println("Java和SQL的成绩差:" + diffen);
    avg = (html + java + sql) / 3;  //计算平均分
    System.out.println("3门课的平均分是: " + avg);
   }
}

总结

1  标识符: 给包、类、方法名、变量、参数定义的一个字符序列。
2  标识符命名规范: 
   1>只能包括字母、数字、下划线、$
   2>不能以数字开头
   3>区分大小写
   4>长度无限制(不要超过15)
     5>不能是java关键字
3 标识符命名习惯:
  1>见名知意
  2>方法名、变量名、参数名首字母小写,后面首字母大写, 驼峰式命名法
    3>类名采用首字母大写,帕斯卡命名法
4 关键字和保留字
  public  
 class
 static 
void 等等
5 常量和变量
  常量:固定的数据。
  整型常量:10,20
  浮点常量:3.14
  字符常量: 'a' 
  布尔常量:true false
  字符串常量: "xxxx","hello world"
  null常量
  变量:本质就是内存中一块存储空间。
  变量名,变量的名字
  变量值,变量中存储的数据(常量)
  变量类型
 使用变量:
  1》先声明,再赋值
        int  num;
        num=20;
  2>声明的同时,赋值
  int num2=20;
变量分类 
  1 按照类型 分: 基本数据类型变量和引用类型变量
    2 按照声明的位置分: 局部变量和成员变量
6 数据类型 
两大类:基本数据类型和引用数据类型 
基本数据类型 : byte  short  int long float double char boolean 
引用类型 : 类 String 、数组 、接口、 枚举、注解
byte : 1个字节    -128-127
short :2    -32768-32767
int :4 
long :8
float:4
double :8
char :2    0-65535
boolean :不确定
基本数据类型之间的转换  
1 自动类型转换 : 表示范围小的转成表示范围大的
  byte--->short---->int---->long --->float--->double
  char--->int
  byte short char 运算是转成int
  int常量和字符常量在合理的范围之内可赋值给byte  short  int   char
2 强制类型转换
 表示范围大的转成表示范围小的
7 运算符
  算术运算符: +  -  *  /  %  ++  -- 
  赋值运算符:  =   +=  -=  *=  /=   %=
        关系运算符:   ==   !=   >   <   >=   <= 
         逻辑运算符:  &   |   !   ^   &&  ||
         位运算符:  &  |   ~  ^     >>    <<  >>>  (了解)
         字符串连接符 :+  
          三目运算符 : X ?Y  :Z
   优先级  ()  =   
  表达式 
8   Scanner的使用
  (1)导入Scanner类
  (2)创建对象
相关文章
|
1月前
|
Java Apache Maven
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
文章提供了使用Apache POI库在Java中创建和读取Excel文件的详细代码示例,包括写入数据到Excel和从Excel读取数据的方法。
60 6
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
|
29天前
|
Java 开发工具 Android开发
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
本系列教程笔记详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。若需快速学习Kotlin,建议查看“简洁”系列教程。本期重点介绍了Kotlin与Java的共存方式,包括属性、单例对象、默认参数方法、包方法、扩展方法以及内部类和成员的互操作性。通过这些内容,帮助你在项目中更好地结合使用这两种语言。
45 1
|
1月前
|
Java 开发工具 Android开发
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
32 2
|
29天前
|
Java 编译器 Android开发
Kotlin语法笔记(28) -Kotlin 与 Java 混编
本系列教程详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。对于希望快速学习Kotlin的用户,推荐查看“简洁”系列教程。本文档重点介绍了Kotlin与Java混编的技巧,包括代码转换、类调用、ProGuard问题、Android library开发建议以及在Kotlin和Java之间互相调用的方法。
22 1
|
29天前
|
安全 Java 编译器
Kotlin语法笔记(27) -Kotlin 与 Java 共存(二)
本教程详细讲解Kotlin语法,适合希望深入了解Kotlin的开发者。若需快速入门,建议查阅“简洁”系列教程。本文重点探讨Kotlin与Java共存的高级话题,包括属性访问、空安全、泛型处理、同步机制及SAM转换等,助你在项目中逐步引入Kotlin。
22 1
|
1月前
|
Java 编译器 Android开发
Kotlin语法笔记(28) -Kotlin 与 Java 混编
Kotlin语法笔记(28) -Kotlin 与 Java 混编
25 2
|
1月前
|
Java 程序员 编译器
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。本文通过示例详细解析了保留字的定义、作用及与自定义标识符的区别,帮助开发者避免因误用保留字而导致的编译错误,确保代码的正确性和可读性。
46 3
|
1月前
|
安全 Java 编译器
Kotlin语法笔记(27) -Kotlin 与 Java 共存(二)
Kotlin语法笔记(27) -Kotlin 与 Java 共存(二)
29 0
|
2月前
|
Java 数据安全/隐私保护
java之基本语法
java之基本语法
28 6
|
2月前
|
存储 Java 容器
Java 基础语法
Java是一种面向对象的编程语言,其基础语法包括类和对象、方法、变量、控制流语句、继承和多态以及异常处理。代码需写在类中,`main()`方法是程序入口,变量用于存储数据,控制流语句控制程序执行流程,继承和多态增强代码灵活性,异常处理保证程序稳定性。掌握这些知识可帮助您编写简单的Java程序。
下一篇
无影云桌面