Java基本语法

  • 时间:2018-12-26 23:24 作者:海若Hero 来源:海若Hero 阅读:536
  • 扫一扫,手机访问
摘要:1.1 IDE集成开发环境1.1.1 java平台1、J2SE java开发平台标准版2、J2EE java开发平台企业版java程序需要在虚拟机上才可以运行,换言之只需有虚拟机的系统都可以运行java程序。不同系统上要安装对应的虚拟机才可以运行java程序1.1.2 java开发步骤1、编写源文件

1.1 IDE集成开发环境

1.1.1 java平台

1、J2SE java开发平台标准版

2、J2EE java开发平台企业版

java程序需要在虚拟机上才可以运行,换言之只需有虚拟机的系统都可以运行java程序。不同系统上要安装对应的虚拟机才可以运行java程序

1.1.2 java开发步骤

1、编写源文件 (.java)

2、编译源文件为类文件(.class)可用J2SE或者J2EE编译

3、在虚拟机上运行

注释

//单行注释

/* */多行注释

1.1.3 java内容详情

java编程可以分成三个方向:

1、java se (j2se)桌面开发 java中的基础中的基础

2、java ee (j2ee)web开发

3、java me (j2me)手机开发

java之父gosling

1990 sun启动 绿色计划

1992 创立oak语言-->java

1994 gosling参与硅谷大会演示java功能,震惊世界

1995 sun正式发布java第一个版本,目前最新是jdk9.0

  • java开发工具

记事本、(jcreator、jbuilder退出舞台了)、netbean、eclipse

  • 如何选择开发工具

先选择记事本,对java有肯定理解后再使用eclipse高级开发工具

为什么呢?

1、更深刻的了解java技术,培养代码感

2、有利于公司面试

1.1.4 java语言的特点

1、java语言是简单的

2、java语言是面向对象的

3、java语言是跨平台(操作系统)的[即一次编译,四处运行]

4、java是高性能的

1.1.5 java第一个程序hello.java

运行java程序要安装和配置jdk

jdk是什么?

1、jdk全称java dvevlopment kit中文java开发工具包

2、jdk是sun公司开发的

3、jdk包括jre(java runtime envirnment)java运行环境、一堆java工具和java基础的类库(类共3600左右,常用类在150个左右)

4、可以在www.sun.com下载

开发安装jdk,客户执行需要安装jre

1.1.6 配置JDK

增加环境变量就可

windows下配置jdk

在计算机属性--高级设置--环境变量--增加PATH将JDK所在路径指定就可。多个环境变量设置时需要用;号进行隔开

1 、编写第一个hello.java

//注释 (解释) 作者://功能:在控制台显示"hello"//日期:2013.11.28//public:表示这个类是公共的,一个java文件中只能有一个public类//class:表示这是一个类//hello:类名(公共类的类名必需和文件名一致)public class hello{      //一个主函数,相当于是程序的入口      public static void main(String args[]){        //执行语句        //System:是一个包        //out.println是输入函数         System.out.println("hello!");      }}

2 、编译hello.java 使用javac hello.java

3 、执行hello.java 使用java hello

1.1.7 java程序运行关系

1、java源文件(.java文件)

2、java编译器即javac.exe

3、java字节码文件(.class文件)

4、由解释执行器即(java.exe)将字节码文件加载到java虚拟器(jvm)

5、字节码文件(.class)就会在java虚拟机中执行

对hello.java程序进行改过使之变为一个简单的加法运算程序

//注释 (解释) 作者://功能:在控制台显示"hello"//日期:2013.11.28//public:表示这个类是公共的,一个java文件中只能有一个public类//class:表示这是一个类//jiafa:类名(公共类的类名必需和文件名一致)public class jiafa{      //一个主函数,相当于是程序的入口      public static void main(String args[]){        //执行语句        //System:是一个包        //out.println是输入函数        // System.out.println("hello!");        int a=10;//定义一个变量,变量名a,它的值10    int b=20;//定义一个变量,变量名b,它的值20        int result=a+b;//定义一个叫result变量将变量ab相加的值赋值给result        //输出结果        System.out.println("结果是"+result);      }}

为什么有变量

不管是使用哪种高级程序语言编写程序,变量都是其程序的基本组成单位。java中的基本数据类型的定义与c/c++中大体一致。

public class Test{    public static void main(String []args){      int a=1;//定义一个整形变量,取名a,并赋初值1      int b=3;//定义一个整形变量,取名b,并赋初值3      b=89;//给变量b赋89      System.out.println(a);//输出语句,把变量a的值输出      System.out.println(b);//把变量b的值输出    }}

1.2 java基本语法

1.2.1 基本数据类型

java 基本数据类型 四大类型

整数类型、小数(浮点)类型、布尔类型、字符类型

整数类型

可以表示一个整数,常用的整数类型有:byte,short,int,long

主要区别是 数据大小范围,请大家看一个小案例。

byte 占用内存 一个字节 范围:-128至127

short 占用内存 两个字节 范围:-32768至32767

int 占用内存 四个字节 范围:-2147483648至2147483647

long 占用内存 八个字节 范围:-?至?

小数(浮点)类型

可以表示一个小数,常用的小数(浮点)类型有:

float(单精度),double(双精度)

float 占用内存 四个字节 范围:3.4E-38至3.4E+38 只能提供7位有效数字

double占用内存 八个字节 范围:1.7E-308至1.7E+308 可提供16位有效数字

布尔类型

可以表示"真"或者者"假",类型是boolean

比方:

boolean spBool=true; //给变量spBool定义为boolean型并赋值为真

字符类型

可以表示 单个字符,字符类型是char。char是两个字节(可以存放汉字)

多个字符我们称为字符串,在java中String这种数据类型表示,但是String不是基本数据类型,而是类,类是复合数据类型。

结论:在java中,对char进行运算的时候,直接当做ascii码对应的整数对待。

思考:

int test1='a'+'b'; 输出值195

char test2='a'+'b'; 输出值?

char test3='中'; 输出值195

1.2.2 定义变量,初始化,赋值

定义变量

1、什么是定义变量?

int a; 这就是定义了一个变量,变量名是a

float haha;这也定义了一个变量,表示一个float类型的小数,变量名是haha

初始化变量

在定义变量的时候,就给值

int a=45;这就是初始化变量a

给变量赋值

比方你先定义了变量:int tt;

而后再给值tt=780; ->这就是给变量赋值

1.2.3 基本数据类型转换

1、自动转换

int a=1.2; double b=3;

结论:数据类型可以自动的从低精度-->高精度。高精度不能转为低精度。

byte 小于<short小于<int小于<long小于<float小于<double

在java中的小数默认是double数据类型

float赋值时要在值后加f

long赋值时要在值后加l

2、强制转换

如何把高精度转成低精度?

int a=(int)1.2;

练习

int a=1; int a=1; double b=4.5; double b=4.5; a=b; b=a;

报错? 成功?

计算过程中的转换

int a=3;int b=a+3.4;

结论:当一个整数和一个double运算的时候,运算结果会向高精度转换

1.2.4 运算符

1 算术运算符

java 中常用的算术运算符是:+加、 - *减、 * 乘、/除、%取模

其实%运算可以得到两个数的余数。

算术运算符:++自加、 -- 自减。

这两个运算符比较特殊,请大家思考一下:

int a=90;a++; //等同于(a=a+1)

这时a等于? 91

int b=89;b--; //等同于(b=b-1)

这时b等于? 88

int a=56;int b=a++; System.out.println(b); 56System.out.println(a); 57

int b=++a; 相当于a=a+1再将b=a;

int b=a++; 相当于b=a再将a=a+1。


算术运算符:+=左加、-=左减、/=左除、%=左取模

请大家看看几个案例,就明白了:

int a=90;a+=90; //(相当于a=a+90)

请问,a现在等于多少? 180

float b=89.7f;b+=a; //(相当于b=b+a)

请问,b现在等于多少? 269.7

int a=56;int b=90;a-=34;b%=a; //(相当于a=a-34,b=b%a)System.out.println(b); 2System.out.println(a); 22

运算符

2 关系运算符

1 、==等于;2、>大于;3、<小于;4、>=大于等于;5、<=小于等于;6、!=不等于

  int a=90;int b=90;  if(a==b){System.out.println("ok1");}  b--;  if(a>b){System.out.println("ok2");}  if(a>=b){System.out.println("ok3");}

请编写一个程序,该程序可以接收两个数(可以是整数,也可是小数)并判断两个数是大于?小于?还是等于?

程序代码:

import java.io.*;//载入IO流包public class Demo5{    public static void main(String []args){    try{    //输入流,从键盘接收数    InputStreamReader isr=new InputStreamReader(System.in);    BufferedReader br=new BufferedReader(isr);    //给出提醒    System.out.println("请输入第一个数");    //从控制台读取一行数据    String a1=br.readLine();    System.out.println("请输入第二个数");    String a2=br.readLine();    //把String转为float    float num1=Float.parseFloat(a1);    float num2=Float.parseFloat(a2);    if(num1>num2){System.out.println("第一个大");}    if(num1==num2){System.out.println("相等");}    if(num1<num2){System.out.println("第二个大");}      }catch(Exception e){        e.printStackTrace();    }    }}

3运算符--逻辑运算符

用于判断逻辑关系的运算符

1 、&&与;2、||或者;3、!非

&&与的运算关系,真真为真,其它都为假。

||或者的运算关系,假假为假,其它都为真。

!非的运算关系,真取假,假取真

请大家看个案例,请问输出什么:

int a=90;int b=90;if(a==b || a>8){System.out.println("ok1");}b--;if(a>b && a>45){System.out.println("ok2");}if(!(a<=b)){System.out.println("ok3");}

1.2.5 三大流程控制

1 顺序控制

听其名而知其意,让程序可以顺序的执行。

请大家看个案例[demo11.java]:

int a=7;System.out.println("a="+a);System.out.println("hello!");a++;System.out.println("a="+a);System.out.println("0(∩_∩)0");a++;System.out.println("a="+a);

2 分支控制

让程序有选择的执行,分支控制有三种:

1、 单分支;2、双分支;3、多分支a

1、单分支语法:

  if(条件表达式){  语句; }

2、双分支语法:

  if(条件表达式){  语句; }else{  语句; }

3.1、多分支语法:

  if(条件表达式){  语句; }else if(条件表达式){  语句; }else if(条件表达式){  语句; }else{  语句; }

3.2、多分支语法:

  switch(条件表达式){ //***条件表达式数据类型,就和case常量表达式一致,否则就会报错。  case 常量1:  语句1;   //语句1至break中相当于{}可以加入相应程序代码  break; //break,表示跳出switch语句  case 常量2:  语句1;  break; ...  case 常量n:  语句n;  break;  default:  语句;  break; }

:switch 中的可用数据类型主要是:允许byte,short,int,char,enum等

1、单分支控制作业:请大家看个案例[demo22.java]:

编写一个程序,可以输入人的年龄,假如该同学的年龄大于18岁,则输出“你年龄大于18,要为自己的行为负责!”

2、双分支控制作业:请大家看个案例[demo33.java]:

编写一个程序,可以输入人的年龄,假如该同志的年龄大于18岁,则输出“你年龄大于18岁,要对自己的行为负责!”否则,输出“你的年龄不大这次放过你了”

3、多分支控制作业:请大家看个案例[demo44.java]

编写一个程序,可以输入人的年龄,假如该同志的年龄大于18岁,则输出“你年龄大于18,要对自己的行业负责,送入监狱”。假如该同志的年龄大于10岁并且小于等于18,则输出“你的年龄也不小了,把你送少管所”。其它情况,则输出“小孩子,下次注意”。

4、多分支控制作业:请大家看个案例[demo55.java]

请编写一个程序,该程序可以接收一个字符,比方:a,b,c,d,e,f,g

a表示星期一,b表示星期二...根据客户的输入显示相应的信息,要求使用switch语句完成。

5、多分支控制作业:请大家看个案例[demo66.java]

比照switch与if语句在执行分支语句的区别。

switch 分支语句不支持判断类型即boolean类型,switch只支持byte,short,int,char,enum等数据类型


3****循环控制

听其名而知其意,就是让你的代码可以循环的执行。

循环控制有三种

1、for循环 语法:

  for(循环初值;循环条件;步长){  语句; //循环体 }

2、while循环 语法:

  while(循环条件){  语句; //循环体 }

特别说明:while循环是先判断在执行语句。

3、do while循环 语法:

  do{  语句; //循环体 }while(循环条件);

特别说明:do while循环是先执行,再判断。

请大家看个案例[demo77-88-99.java]:

编写一个程序,可以打印10句“你好,我是刘德华同志!”。请大家想想怎样做?

1、for循环

for (int a=0;a<10;a++){System.out.println("你好,我是刘德华同志!");}

2、while循环

int i=0;while(i<10){System.out.println("你好,我是刘德华同志!");i++;}

3、do while循环

int i=0;do{System.out.println("你好,我是刘德华同志!");i++;}while(i<10)

请编写一个程序,可以接收一个整数,表示层数,打印出金字塔一半。[demo100.java]

  • 把一个复杂的问是先拆解成简单问题
//三角形[Demo100.java]public class Demo100{    public static void main(String []args){        //死去活来法-->打四次        int lay=4;        //表示有多少层        for(int i=1;i<=lay;i++){            //打印*            for(int j=1;j<=i;j++){                System.out.print("*");            }            System.out.println();//换行        }    }}

//金字塔[Demo101.java]public class Demo101{    public static void main(String []args){        int lay=10;//表示有多少层        for(int i=1;i<=lay;i++){            //找出规律            //1->3 2->2 3->1 4->0找出空格            for(int k=1;k<=lay-i;k++){            System.out.print(" ");            }            //打印*            //1->1 2->3 3->5 4->7找出星的规律            for(int j=1;j<=(i-1)*2+1;j++){                System.out.print("*");            }            System.out.println();//换行        }    }}

//镂空金字塔[Demo102.java]public class Demo102{    public static void main(String []args){        int lay=10;//表示有多少层        for(int i=1;i<=lay;i++){            //找出规律            //1->3 2->2 3->1 4->0找出空格            for(int k=1;k<=lay-i;k++){            System.out.print(" ");            }            //打印*            //1->1 2->3 3->5 4->7找出星的规律            for(int j=1;j<=(i-1)*2+1;j++){                //判断该层能否是顶层或者者是底层                if(i==1||i==lay){                System.out.print("*");                }else{                    //假如是第一个*                    if(j==1||j==(i-1)*2+1){                    System.out.print("*");                    }else{                        System.out.print(" ");                    }                }            }            System.out.println();//换行        }    }}

//空心菱形[Demo103.java]public class Demo103{    public static void main(String []args){        int lay=4;//菱形上半部行数        for(int i=1;i<=lay-1;i++){ //判断循环上半部分            for(int k=1;k<=lay-i;k++){ //找行内*号前输出空格                System.out.print(" ");            }            for(int j=1;j<=(i-1)*2+1;j++){ //找行内输出星的位置                if(j==1||j==(i-1)*2+1){  //判断行最小长度和最大长度,并在最小长度和最大长度上输出*号,行内输入出空格。                    System.out.print("*");                }else{                    System.out.print(" ");                 }            }            System.out.println(); //换行        }        for(int i=1;i<=lay;i++){  //判断循环菱形下半部分            for(int k=1;k<=i-1;k++){ //判断循环找*号前要输出空格处                System.out.print(" ");            }            for(int j=1;j<=(lay-i)*2+1;j++){ //判断循环行长度                if(j==1||j==(lay-i)*2+1){ //判断行最小长度和最大长度,并在最小长度和最大长度上输出*号,行内输入出空格。                    System.out.print("*");                }else{                    System.out.print(" ");                 }            }            System.out.println();//输出换行        }    }}

//实心菱形[Demo104.java]public class Demo104{    public static void main(String []args){        int lay=4;//菱形上半部行数        for(int i=1;i<=lay-1;i++){ //判断循环上半部分            for(int k=1;k<=lay-i;k++){ //找行内*号前输出空格                System.out.print(" ");            }            for(int j=1;j<=(i-1)*2+1;j++){ //找行内输出星的位置                System.out.print("*");            }            System.out.println(); //换行        }        for(int i=1;i<=lay;i++){  //判断循环菱形下半部分            for(int k=1;k<=i-1;k++){ //判断循环找*号前要输出空格处                System.out.print(" ");            }            for(int j=1;j<=(lay-i)*2+1;j++){ //判断循环行长度                System.out.print("*");            }            System.out.println();//输出换行        }    }}
tobehero666.png
  • 全部评论(0)
最新发布的资讯信息
【系统环境|】2FA验证器 验证码如何登录(2024-04-01 20:18)
【系统环境|】怎么做才能建设好外贸网站?(2023-12-20 10:05)
【系统环境|软件环境】梦幻仙域游戏攻略(2023-12-19 10:02)
【系统环境|软件环境】梦幻仙域游戏攻略(2023-12-19 10:02)
【系统环境|】卡帕部落揭秘潮玩新宠,探究玩法(2023-12-14 09:45)
【系统环境|数据库】 潮玩宇宙游戏道具收集方法(2023-12-12 16:13)
【系统环境|】如何开发搭建卡帕部落模式源码(2023-12-12 10:44)
【系统环境|】遥遥领先!青否数字人直播系统5.0发布,支持真人接管实时驱动!(2023-10-12 17:31)
【系统环境|服务器应用】克隆自己的数字人形象需要几步?(2023-09-20 17:13)
【系统环境|】Tiktok登录教程(2023-02-13 14:17)
手机二维码手机访问领取大礼包
返回顶部