一、基础语法部分

Java是sun公司推出的(1995年),但在09年Oracle收购了sun

二进制与十进制的相互转换:乘基取整(0.3并不能准确的用二进制表示);除基取余;

字节:计算机中存储的最小存储单元(并不是位)。 KMGTPEZ

         命令提示符常用命令:(tab切换)

  • 启动命令提示符              win+R→cmd
  • 切换盘符                          盘符:(d:)
  • 进入文件夹                      cd文件夹名称
  • 进入多级文件夹              cd 文件夹1\文件夹2\文件夹3
  • 返回上一级                       cd..
  • 直接回根路径                  cd \
  • 查看当前内容                  dir
  • 清屏                                    cls
  • 关闭命令提示符              exit

Java语言具有跨平台特性,该特性是由jvm实现的,程序运行在jvm中,而jvm运行在OS中(每个OS有自身的jvm)。

想运行一个已有的程序,只需安装JRE;若想开发一个全新的,必须安装JDK;

JDK→JRE→jvm

JRE   (java Runtime Environment)是Java程序的运行时环境,包含jvm和运行时所需要的核心类库

JDK   (Java development kit)是Java程序开发工具包,包含JRE和开发人员使用的编译器等开发工具;

搭建Java开发环境:源码必须通过javac编译工具进行翻译,然后再通过Java执行工具执行。

JDK最好选择8/11/17版本的(LTS版本);11以上可直接执行源程序。

JDK中最重要的2个命令程序:Java(执行工具)、javac(编译工具)命令行中输入观察看是否报错;

输入Java -version;javac-version;查看版本号,验证是否安装成功;

         Path环境变量用于记住程序路径,方便在命令行窗口的任意目录启动程序。

         JAVA_HOME告诉了操作系统JDK安装在了哪个位置,将来其他技术要通过他找到JDK

程序开发步骤:编写、编译、运行

         Java源程序(.java)→编译器(javac.exe)→Java字节码文件(.class)→jvm运行

         Java.exe是解释器

         Cmd中用javac进行编译,用java进行运行。    

Eg:  Javac demo1.java;   java demo1;

Java区分大小写

Java注释:

单行注释://

多行注释(区块注释):/*    */

类名必须和所在文件名称一样,类是Java中所有源代码的基本组织单位

main方法:程序执行的起点

关键字:(完全小写)

标识符:

自定义的名称,比如类的名字,方法的名字和变量的名字;

可以包含英文字母(区分大小写)、数字、$、_;

不能以数字开头,不能是关键字

类名:大驼峰式HappyDay

变量名和方法名:小驼峰式happyDay

常量:在程序运行期间,固定不变的量

  1. 字符串常量  “abc” “123”
  2. 整数常量  100  -90   0
  3. 浮点数常量  2.5   -3.14   0.0
  4. 字符常量(有且仅有一个字符)  ‘q’          ‘9’             ‘中’
  5. 布尔常量  true false
  6. 空常量(不能直接打印null,就让他空着就行) null

变量:程序运行期间,内容可以发生改变的量;没有赋值的变量不能直接使用;

         创建一个变量:

数据类型 变量名称=数据值;

         对于float和long类型,FL不能丢掉,对于byte和short,右侧的数据值不能超过左侧类型的范围。且变量使用不能超过作用域。

数据类型:

  1. 字符串不是基本类型,而是引用类型;
  2. 浮点数可能只是一个近似值,并非精确的值;
  3. 数据范围与字节数不一定相关,例如float数据范围比long更加广泛,但是float是4字节,而long是8字节;
  4. 浮点数当中默认类型是double。如果一定要使用float类型,需要加上一个后缀F。如果是整数,默认类型为int类型,如果一定要使用long类型,需要加上后缀L。

基本数据类型:

         整数型:byte(1B) short(2B) int(4B)   long(8B)

         浮点型:float(4B)    double(8B)

         字符型:char(2B)

         布尔类型:boolean(1B)

引用数据类型:字符串、数组、类、接口、lambda

数据类型转换:

         自动类型转换(隐式)

  1. 特点:代码不需要进行特殊处理,自动完成。
  2. 规则:数据范围从小到大

强制类型转换(显式)

  1. 特点:代码需要进行特殊的格式处理,不能自动完成。
  2. 格式:范围小的类型 范围小的变量名=(范围小的类型) 原本范围大的数据

表达式的自动类型转换:

在表达式中,小范围类型的变量会自动提升成大范围运算。表达式的最终结果类型是由其最高数据类型决定,最高数据类型是什么,其结果数据的类型就是什么。Eg: byte、short、char在表达式中,是直接提升成int运算。

         强制类型转换:

大范围类型的变量或者数据不能直接赋值给小范围类型的变量,否则报错!必须进行强制类型转换才可以。强转可能会导致数据丢失,即数据溢出,浮点类型的变量或者数据强制转换为整型,保留整数部分返回的,小数部分直接不要了。

注意事项:

         强制类型转换一般不推荐使用,因为有可能发生精度丢失,数据溢出;

Byte/short/char这三种类型在运算的时候,都会首先提升为int型,然后再计算

Boolean类型不能发生数据类型转换。

ASCII编码表

48:0                           65:A                        97:a

运算符

         算术运算符:+      -       *       /       %

         整数乘除的结果一定是整数:10/3=3         →             1.0*10/3=3.33333

一旦运算当中有不同类型的数据,那么结果将会是数据类型范围大的的那种。

加号+:

         对于数值,就是加法

         对于字符char类型,计算前,char会被提升成为int,然后再计算。

         对于字符串String类型,代表连接操作

任何数据类型和字符串进行连接的时候,结果都会变成字符串

自增自减

自增运算符:++

自减运算符:--

单独使用时,前++和后++没有任何区别,是完全一样的。

但混合使用时:

         A:前++          ++i      先+1再使用

         B:后++          i++            先使用后+1(拿走的是原来的数,暂时未+1)

赋值运算符

         基本赋值运算符:=

         复合赋值运算符:+=、-=、*=、/=、%=;                                   a+=3(自带强转)→a=a+3

         只有变量才能使用赋值运算符,常量不能赋值;复合赋值运算符其中隐含了一个强制类型转换;

比较运算符

         ==    <       >     <=    >=   !=

         比较运算符的结果一定是一个boolean值,成立就是true,不成立就是false;

逻辑运算符

         与(并且):&&             全1为1          &(逻辑与);&&(短路与);

         或(或者):||               全0为0          |(逻辑或); ||(逻辑与);

         非(取反):!                          ^异或操作;

与或具有短路效果,如果根据左边的已经可以判断得到最终结果,那么右边的代码将不再执行,从而节省一定的性能。

  1. 逻辑运算符只能用于boolean值
  2. 与或需要左右各自有一个boolean值,但是非只需一个

三元运算符

         一元运算符:只需一个数据就可以进行操作的运算符。取反!、自增++、自减- -

         二元运算符:需要两个数据才可以进行操作的运算符。加法+、赋值=

         三元运算符:数据类型 变量名称 = 条件判断 ?表达式A :表达式B;

max=a>b?a:b

         流程:首先判断条件是否成立:如果成立为true,那么将表达式A的值赋值给左侧的变量。如果不成立为false,那么将表达式B的值赋值给左侧的变量。二者选其一

方法:先后顺序无所谓,调用后才执行

         public static void main(String[ ] args){

                  farmer( );

         }

        

         public static void farmer( ){

         }

对于byte/short/char三种类型来说,如果右侧赋值的数值没有超过范围,那么javac编译器将会自动隐含地为我们补上一个(byte)/(short)/(char)

  1. 如果没有超过左侧的范围,编译器补上强转。
  2. 如果右侧超过了左侧范围,那么直接编译器报错
  3. short+short→int+int→int
  4. 当右侧全是常量时,编译器会进行常量优化。

顺序结构

自上而下的执行代码

判断语句if else:区间匹配

          可与三元运算符等效替换

选择语句switch:值匹配

          switch(表达式){

         case 常量值1:

                  语句体1;

                  break;

         …

        

         default:                                               如果所有的都不匹配,则执行default部分。

                  语句体n+1;

                  break;                                         这个break可省略

}

注意事项:1、多个case后的数值不可以重复;

                    2、Switch后的小括号当中只能是byte/short/char/int/String/enum枚举

                                     3、Switch语句格式可以很灵活,前后顺序可以颠倒,而且最后一个break

可以省略,匹配后直到遇到break或者整体结束为止。

循环语句

for

for(初始表达式①;布尔表达式②;步进表达式④){

         循环体③

}

While

         初始表达式①;

         While(布尔表达式②){

                  循环体③

                  步进表达式④

}
do while

初始表达式①;

do{

                  循环体③

                  步进表达式④

}while(布尔表达式②)

三种循环的区别

  1. 如果条件判断从来没有满足过,那么for循环和while循环将会执行0次,但是do while循环会执行至少一次。
  2. For循环的变量在小括号中定义,只能在循环内部使用。While循环和do while循环初始化语句本来就在外面,只有for循环自己才能使用。
  3. 凡是次数确定的场景多用for循环,否则多用while循环。

循环控制语句

         break  

  1. 可以用在Switch语句当中,一旦执行,整个Switch语句立刻结束。
  2. 可以用在循环语句当中,一旦执行,整个循环语句立刻结束,打断循环。

continue

         一旦执行,立刻跳过当前次循环剩余内容,马上开始下一场循环。

死循环

         While(true){

                  循环体

}

循环嵌套

         循环次数为外层循环次数*内层循环次数

  • 11
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值