关于关键字的一个概述

  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;

Java学习之路(二):关键字和变量,运算符的更多相关文章

  1. Java学习之路(二)

    什么是变量? 1:计算机是一种嫉妒精确的机器 2:要将信息存储在计算机当中,就必须指明信息存储的位置和所需的内存空间: 3:在Java当中 使用声明语句来完成上述任务 变量的类型:

  2. Java学习之路(二):Java中的方法

    Java中的方法 概念: 为什么要有方法: 提高代码的复用性 什么是方法: 完成特定功能的代码块 格式: 修饰符 返回值类型 方法名(参数){ 方法体语句: return 返回值: } 1.修饰符:例 ...

  3. Java学习之路(二):流程控制语句

    Java流程控制语句 java的流程控制语句: 默认,顺序执行 if...else...条件控制语句 switch 选择语句 for循环 while循环 do...while循环 break,cont ...

  4. 【Java学习笔记之二十三】instanceof运算符的用法小结

    instanceof运算符用法 运算符是双目运算符,左面的操作元是一个对象,右面是一个类.当左面的对象是右面的类创建的对象时,该运算符运算的结果是true,否则是false 说明: (1)一个类的实例 ...

  5. java学习之路之javaSE基础1

    <h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解)* A:什么是计算机?计算机在生活中的应用 ...

  6. 【Java学习笔记之二十六】深入理解Java匿名内部类

    在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意 ...

  7. java学习之路之javaSE基础2

    java学习之路之javaSE基础2 所有的代码都是引用他人写的. 1.逻辑运算符 //&,|,^,! //int x = 10; //5 < x < 15 //x > 5 ...

  8. Java学习之路(转)

    Java学习之路(书籍推荐)   一.基础类 1.<Thinking in java>(阅读2遍),入门第一位是建立正确的概念 2.<Core Java>这本书更贴近实践,更多 ...

  9. JAVA学习之路与大家分享

    这是我四年以前总结的JAVA学习之路,希望对初学者或想从事JAVA开发的人有帮助. 本人是软件工程专业出身,先后学过C.C++.JAVA.VB.delphi等等开发语言以及网络相关管理技术.哎,好久不 ...

随机推荐

  1. 利用APT实现Android编译时注解

    摘要: 一.APT概述 我们在前面的java注解详解一文中已经讲过,可以在运行时利用反射机制运行处理注解.其实,我们还可以在编译时处理注解,这就是不得不说官方为我们提供的注解处理工具APT (Anno ...

  2. 【Linux】Linux各文件夹说明

    转载 /bin/ — 用来贮存普通命令. /sbin/ — 许多系统命令(例如 shutdown)的贮存位置.属于基本的系统命令,如shutdown,reboot,用于启动系统,修复系统./sbin目 ...

  3. linux vi vim文本编辑器

    vim是vi的加强版,建议使用vim. vim拥有三种模式: 命令模式(常规模式) vim启动后,默认进入命令模式,任何模式都可以通过esc键来回到命令模式.命令模式可以通过键入不同的命令来完成选择, ...

  4. Android-帧布局(FrameLayout)

    帧布局的特点是,一层一层的覆盖在上面 帧布局,使用比较多的属性是: android:layout_gravity="bottom" 也支持这些属性的设置: <!-- andr ...

  5. [Postgres]Postgres单用户模式执行VACUUM

    # su - postgres $ /usr/local/pgsql/bin/postgres --single -D /usr/local/pgsql/data [不能VACUUM的数据库] Pos ...

  6. 7z文件格式及其源码的分析(三)

    上一篇在这里.  这是7z文件格式分析的第三篇, 相信有了前两篇的准备,你已经了解了7z源码的大致结构, 以及如何简单调试7z的源码了. 很多同学是不是迫不及待想要拔去7z的神秘外衣,看看究竟了. 好 ...

  7. 等等,你可能误解nodejs了–通俗的概括nodejs的真相

    最近刚把产品从cpp平台迁移到nodejs平台了.  很多以前关于nodejs的观念被颠覆了. 这里分享出来, 欢迎大家批评指正. "nodejs是做服务器端开发的, 它一定和web相关,几 ...

  8. Redis 七月小说网的爬虫缓存设计

    一.爬虫策略 1.主服务器先根据spider.all set排重,再 lpush request_url 到spider.wait List中,并且 sadd request_url 到 set中: ...

  9. 201621123023《Java程序设计》第1周学习总结

    第1周-Java基本概念 一.本周学习总结 关键词:java发展历史.JVM/JRE/JDK.编辑器 java是一门面向对象的语言,相比于C语言我感觉java更方便.java是运行在JVM上的,不同的 ...

  10. ubuntu里面如何以root身份使用图形界面管理文件?

    nautilus 是gnome的文件管理器,但是如果不是root账号下,权限受限,我们可以通过以下方式以root权限使用! 一,快捷键“Ctrl+Alt+t”,调出shell. 二,在shell中输入 ...