zoukankan      html  css  js  c++  java
  • Java学习之路(二):关键字和变量,运算符

    关于关键字的一个概述

      Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构,关键字不能用做变量名、方法名、类名、包名。

    Java常见的关键字

     

    标识符

    什么是标识符?

      标识符就是程序员在定义Java程序时,自定义的一些名字,就比如class后的名字。类名就属于标识符的一种。标识符除了应用在类名上,还可以用在变量、函数名、包名上。

    标识符的命名规范

    • 标识符由26个英文字符大小写、数字、下划线和美元符号组成的
    • 不能以数字开头,不能使关键字
    • 严格区分大小写
    • 标识符可以使任意长度的

    Java中的一些命名规范

    1.包名

    • 多个单词组成的字母小写

    2.类名和接口

    • 多个单词组成时所有的单词首字母大写

    3.变量名和函数名

    • 多个单词组成时第一个单词的首字母小写,其他单词的首字母大写

    4.常量名

    • 多个单词组成时,要求全部大写,多个单词之间使用 _ 分割

    注释

    注释的作用是什么?

    通过注释提高程序的可读性,使Java程序的条理更加清晰,易于区分代码行与注释行

    有些程序也会用注释在代码的开头加入作者的姓名,时间,版本

    注释的种类

    • 单行注释    用 // 表示
    • 多行注释    用/*注释内容*/
    • 文档注释    用/** 注释内容 */

    注意:

    • 文档注释是Java特有的注释,其中注释内容可被JDK提供的工具javadoc所解析,生成一套以网页形式体现的说明文档。
    • 需要使用sum公司提供给我们的javadoc工具
    • 只能抽取public的属性或者方法内容

    使用文档注释生成说明文档的方法:

    Javadoc  -d  指定存储文档的路径  -version -author  目标文件

    文档注释定义的一些方法:

    • @author 作者
    • @version 版本
    • @param 方法的参数
    • @return 返回值

    关于注释的一些补充:

    • 给那一条语句进行说明,注释一般放在这句的旁边
    • 单行注释一般写在语句的后面,多行注释一般写在语句的上面
    • 文档注释只能出现在类、属性、方法的上面
    • 单行注释可以在嵌套单行注释,但是多行注释不能嵌套多行注释

    常量

    概述:

      常量是指在程序运行过程中其值不能改变的量

    常量的类型:

    • 整数常量:所有的整数
    • 小数常量:所有的小数
    • 布尔常量:只有true和false
    • 字符常量:使用 单引号 引起来的单个字符
    • 字符串常量:使用 双引号 引起来的字符序列
    • null常量:只用一个值null

    变量

    概述:

      用于存储可变数据的容器

    变量存在的意义:

      计算机主要用于处理生活中的数据,由于生活中存在大量的可变数据,那么计算机就必须具备存储可变数据的内力。

    特点:

    • 必须要有大小
    • 存储一定格式的可变数据
    • 必须要有名字

    变量的数据类型:

    整形

    • byte  代表一个字节的大小  8bit
    • short  代表两个字节的大小  16bit
    • int  代表四个字节的大小  32bit
    • long  代表八个字节的大小  64bit

      注意:如果一个数值没有采取特殊的处理,那个该数据默认的类型是int。可以使用数值后面添加L表示这是一个长整型

    浮点型:

    • float  代表四个字节的大小  32位
    • double  代表八个字节的大小  64bit

      注意:Java程序中的小数默认的类型是double类型,所以需要使用特殊的符号f改变默认的小数类型

    字符型:

    • char  代表两个字节的大小  16bit

      原理:将字符映射为码表中对应的十进制数据加以存储

    变量的声明:

    数据类型  变量名1,变量2......

    注意:变量名的首字母一般都是以小写字母开始的

    Java数据类型的转换

      Java中可以进行不同数据类型的加减乘除运算吗?是可以的。在算术运算符中已经体验过如果两个整数(int)相除会去掉小数部分。如果需要保留小数部分,可以让除数或者被除数变为double类型的(5变为5.0)。其实Java是自动的将int的那个数变为了double类型了也就是Java自动的将整数变为了浮点数。例如5/2.0 其实是5.0/2.0

    1.自动类型转换(隐式类型转换)

      可以将一个数赋值给更大的数值范围的变量

      eg:

        将byte给short,将short给int,将int给long

      Java内部其实做的工作其实就是自动将数值进行了类型提升,也叫作自动类型转换。

      要实现自动类型转换,需要满足两个条件:

      • 两种类型之间要彼此兼容
      • 第二目标类型范围要大于原类型      

    2.强制类型转换(显示类型转换)

      不可以将一个数值赋给范围更小数值范围的变量,除非是类型转换

      注意:强制类型转换会损失精度

    格式:

    //eg:
    
    int i = 100;
    byte b = (int) i;

    原理:

    比如int强转为byte,int是一个32位的数据,而byte只有8位,那么,当int强转为byte时,便只会取出后8位。如此存储。

    一些细节性的问题

    1.当一个小数double类型,执行保留其整数部分,那么我们使用强转,强转为int类型即可

    2.表达式的数据类型会自动提升

      在算数表达式、逻辑表达式中

      所有的byte类型、short类型、char类型的值都会被默认转换为int类型  

      如果一个操作数是long型,计算结果就是long型;

      如果一个操作数是float型,计算结果就是float型;

      如果一个操作数是double型,计算结果就是double型。

    Java的运算符

    算数运算符

     

    注意:

     1.自增

    • 前自增:先自增完毕,在运算表达式。
    • 后自增:先运算表达式,在进行自增

     前自增和后自增之间的区别:

    • 当++在变量后面的时候,会先将变量中的值取出做赋值操作,然后在自身+1
    • 当++在变量前面的时候,会先自身+1,然后再将结果赋值
    int x  = 4;
    int y = (x++)+(++x)+(x*10);
    //求y的值
    思考题

    另外一些简单的:

    • == 等于
    • != 不等于
    • > 大于
    • >= 大于等于
    • < 小于
    • <= 小于等于

      注意:无论你的操作是简单还是复杂,结果都是boolean类型的

    逻辑运算符

    • & 逻辑与,有false则结果为false
    • |  逻辑或,有true则为true
    • ^ 逻辑异或,相同的则为false,不同的则为true
    • ! 逻辑非
    • && 逻辑与(短路版,执行效率会高)
    • || 逻辑或(短路版,同上)

    位运算

    • & 按位与,有0则0,其他的都是1
    • | 按位或,有1则为1,其余都为0
    • ^ 按位异或,相同则为0,不同则为1
    • ~ 按位取反,按位补运算符,再反转操作数的每一位
    • << 按位左移
    • >> 按位右移
    • >>> 无符号右移(没有无符号左移!)
    1.来一道面试题:
        请实现两个整数变量的交换(不需要定义第三方变量)
    //方法一:
    //    相加然后再减出来
    int a = 1;
    int b = 2;
    
    a = a+b;
    b = a-b;
    a = a-b;  //方法还是很简单的,自己领悟一下
    
    //方法二:
    //    使用按位异或运算符
    //    按位异或运算符:一个数据对另一个数据按位异或两次,该数本身不变
    int a = 1;
    int b = 2;
    
    a = a^b;
    b = a^b;
    a = a^b;
    答案

    三目运算符

    格式:

      (关系表达式)?表达式1:表达式2;

    实例:

    int a = 1;
    int b = 2;
    
    int max = (a>b)?a:b;
  • 相关阅读:
    matlab图像对比度增强,拉伸和灰度变换
    javascript 数据结构----集合
    reduce ,redceRight 在react中的使用
    找前端私活
    数组对象 按某个属性排序
    原生js获取scrollTop
    react 绑定事件 总是默认触发
    横向柱状图
    css 四角辉光
    Android学习笔记_点九绘图与软键盘和事件传递
  • 原文地址:https://www.cnblogs.com/smiling-crying/p/9264233.html
Copyright © 2011-2022 走看看