Java基础包含关键字,标识符,注释,常量和变量,运算符

关键字

关键字的定义和特点

定义:被Java语言赋予了特殊含义的单词

特点:关键字中所有字母都为小写

Java的关键字

用于定义数据类型的关键字:

class interface byte short int
long float double char boolean
void

用于定义数据类型值的关键字:

true false null

用于定义流程控制的关键字:

if else switch case default
while do for break continue
return

用于定义访问权限修饰符的关键字:

private protected public

用于定义类,函数,变量修饰符的关键字:

abstract final static synchronized

用于定义类与类之间关系的关键字:

extends implements

用于定义建立实例及引用实例,判断实例的关键字:

new this super instanceof

用于异常处理的关键字:

try catch finally throw throws

用于包的关键字:

package import

其他修饰符关键字:

native strictfp transient volatile assert

标识符

在程序中自定义的一些名称

由26个英文字母大小写,数字:0-9 符号:_ $组成

定义合法标识符规则:

  • 数字不可以开头
  • 不可以使用关键字

    Java中严格区分大小写

    注意:在起名字的时,为了提高阅读性,要尽量有意义

Java中的名称规范

包名:多单词组成时所有字母都小写

xxxyyyzzz

类名接口名:多单词组成时,所有单词的首字母大写

XxxYyyZzz

变量名和函数名:多单词组成时,第一个单词首字母小写,第二 个单词开始每个单词首字母大写

xxxYyyZzz

常量名:所有字母都大写。多单词时每个单词用下划线连接

XXX_YYY_ZZZ

注释

用于注解说明解释程序的文字就是注释

提高了代码的阅读性

Java中的注释格式

单行注释 格式://注释文字

多行注释 格式:/* 注释文字*/

文档注释 格式:/** 注释文字*/

关于注释的说明

  • 对于单行和多行注释,被注释的文字,不会被JVM( java 虚拟机)解释执行
  • 对于文档注释,是java特有的注释,其中注释内容可 以被 JDK提供的工具javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档
  • 注释是一个程序员必须要具有的良好编程习惯
  • 将自己的思想通过注释先整理出来,在用代码去体现,因为代码仅仅是思想的一种体现形式而已

e.g.

/**
这是我的Hello World程序
@author 小强
*/ class Demo {
/* 这是主函数,是程序的入口它的出现可以保证程序的独立运行*/
public static void main(String[] args) {
//这是输出语句用于将括号内的数据打印到控制台
System.out.println("Hello World");
}
}

常量与变量

常量表示不能改变的数值

常量的分类

  • 整数常量。所有整数
  • 小数常量。所有小数
  • 布尔型常量。较为特有,只有两个数值。true false
  • 字符常量。将一个数字字母或者符号用单引号( ’ ’ )标识
  • 字符串常量。将一个或者多个字符用双引号标识
  • null常量。只有一个数值就是:null

三种整数表现形式

  • 十进制:0-9 ,满10进1
  • 八进制:0-7 ,满8进1. 用0开头表示
  • 十六进制:0-9,A-F,满16进1. 用0x开头表示

进制的基本转换

十进制 二进制互转

十进制转成二进制:除以2取余数

二进制转成十进制:乘以2的幂数

十进制八进制互转

十进制十六进制互转

负数的二进制表现形式

对应的正数二进制取反加1

变量的概念

  • 内存中的一个存储区域
  • 该区域有自己的名称(变量名)和类型(数据类型)
  • 该区域的数据可以在同一类型范围内不断变化

用来不断的存放同一类型的常量,并可以重复使用

使用变量注意:

  • 变量的作用范围(一对{}之间有效
  • 初始化值

定义变量的格式

数据类型 变量名 = 初始化值;

注:格式是固定的,记住格式,以不变应万变

理解:变量就如同数学中的未知数

Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间



整数默认:int

小数默认:double

byte      8bit
short 16bit
int 32bit (默认)
long 64bit 使用时候加上L或l
char 16bit 0~65535
float 32bit 第1位符号位,接下来8位指数位,后面23位尾数位 以F或f结尾
double 64bit 第1位符号位,接下来11位指数位,后面52位尾数位 (默认)

注:一个正数(浮点数)除以0得到正无穷大,一个负数(浮点数)除以零得到负无穷大,0.0除以0.0或对一个负数开方得到非数。整数值除以0则抛出异常。正无穷大与正无穷大相等,负无穷大与负无穷大相等,非数与任何数不等包括NaN

Float.POSITIVE_INFINITYDouble.POSITIVE_INFINITYFloat.NEGATIVE_INFINITYDouble.NEGATIVE_INFINITYFloat.NaN,Double.NaN

当表数范围小的数值或变量直接复制给表数范围大的变量时,系统完成自动类型转换。反之而需要强转。

表达式类型的自动提升:所有的byte,short,char自动提升为int。表达式中提升到与最高的相同。

int,long,float,double,boolean,char,String,null都为直接量类型。

java会确保每个字符串常量只有一个

类型转换

自动类型转换(也叫隐式类型转换)

强制类型转换(也叫显式类型转换)

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

  • 所有的byte型、short型和char的值将被提升到int型
  • 如果一个操作数是long型,计算结果就是long型
  • 如果一个操作数是float型,计算结果就是float型
  • 如果一个操作数是double型,计算结果就是double型

分析 System.out.println('a')System.out.println('a'+1) 的区别

自动类型提升

byte b = 3;
int x = 4;
x = x + b;//b会自动提升为int类型进行运算

强制类型转换

byte b = 3;
b = b + 4;//报错
b = (byte)b+4;//强制类型转换,强制将b+4的结果转换为byte类型,再赋值给b

运算符

算术运算符



注意的问题:

  • 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模 数是负数就另当别论
  • 对于除号"/",它的整数除和小数除是有区别的:整数之间做除法时 ,只保留整数部分而舍弃小数部分
  • "+"除字符串相加功能外,还能把非字符串转换成字符串

赋值运算符

符号: = , +=, -=, *=, /=, %=

示例:

int a, b, c;
a = b = c = 3;
int a = 3;
a += 5;//等同运算a=a+5;

比较运算符

  • 比较运算符的结果都是boolean型,也就是要么是true,要么是false
  • 比较运算符"==“不能误写成”="

逻辑运算符

逻辑运算符用于连接布尔型表达式,在Java中不可以 写成 3<x<6,应该写成x>3 & x<6

"&“和”&&"的区别

  • &时,左边无论真假,右边都进行运算
  • &时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算
  • |||的区别同理,双或时,左边为真,右边不参与运算

异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false

位运算符



  • 对于低于int类型的操作数先转换成int再移位
  • 对于int类型的整数移位a>>b,当b>32时,k=b%32,k为真正移位的位数
  • 对于long类型的整数移位a>>b,当b>64时,k=b%32,k为真正移位的位数

三元运算符

格式

(条件表达式)?表达式1:表达式2;

如果条件为true,运算后的结果是表达式1

如果条件为false,运算后的结果是表达式2

示例:

获取两个数中大数

int x=3, y=4, z;
z = (x > y) ? x : y;//z变量存储的就是两个数的大数

Java学习笔记-基础语法的更多相关文章

  1. Java学习笔记-基础语法Ⅳ

    多态:同一个对象,在不同时刻表现出来的不同形态 例如: 猫 cat = new 猫(); 动物 animal = new 猫(); 这里的猫在不同时刻表现出来不同的形态,这就是多态 多态的前提和体现: ...

  2. Java学习笔记-基础语法Ⅹ-进程线程

    学习快一个月了,现在学到了黑马Java教程的300集 打印流的特点: 只负责输出数据,不负责读取数据 有自己的特有方法 字节打印流:PrintStream,使用指定的文件名创建新的打印流 import ...

  3. Java学习笔记-基础语法Ⅷ-泛型、Map

    泛型 泛型本质上是参数化类型,也就是说所操作的数据类型被指定为一个参数,即将类型由原来的具体的类型参数化,然后在使用/调用时传入具体的类型,这种参数类型可以用在类.方法和接口中,分别为泛型类.泛型方法 ...

  4. Java学习笔记-基础语法Ⅴ

    学习一些Java常用的API Math:包含执行基本数字运算的方法 如果没有构造方法,一般类的成员都是静态的,通过类名可以直接调用 Java中有两种random函数,Math.Random()函数能够 ...

  5. JAVA 学习笔记 - 基础语法 2

    ---恢复内容开始--- 1.数组的申明和应用 数据类型 数组名称[] = null;             //在堆栈中申明变量名称 数组名称 =  new  数据类型[10];       // ...

  6. JAVA 学习笔记 - 基础语法1

    1. 类的定义 public class  与  class的区别 一个java文件只有一个public class, 而且类名必须与文件名一致. 一个java文件可以有多个class定义,javac ...

  7. Java学习笔记-基础语法ⅩⅠ-UDP、TCP

    网络编程 三要素:IP地址.端口.协议 IP地址:使用ipconfig查看,如果装了VM的话,会有VMnet1.VMnet8和WLAN,net1不能从虚拟机到主机,net8不能从主机到虚拟机,net0 ...

  8. Java学习笔记-基础语法Ⅸ-文件

    File File是文件和路径名的抽象表示,File封装的并不是一个真正存在的文件,是一个路径名,可以存在也可以不存在 常用方法: 创建文件:createNewFile() 创建目录:mkdir() ...

  9. Java学习笔记-基础语法Ⅶ-集合

    集合 集合类特点:提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变 这里需要回顾一下,因为数组和字符串一旦创建,就不可改变,需要区分一下 import java.util.ArrayLi ...

随机推荐

  1. HDU 6143 - Killer Names | 2017 Multi-University Training Contest 8

    /* HDU 6143 - Killer Names [ DP ] | 2017 Multi-University Training Contest 8 题意: m个字母组成两个长为n的序列,两序列中 ...

  2. js校验密码必须包含字母大小写、数字

    校验密码必须包含字母大小写.数字 function checkPasswordNew(s){ var str=trim(s); //var reg = /^(?![A-Z]+$)(?![a-z]+$) ...

  3. Oracle 后台进程(五)SMON进程

    转载自:刘相兵 Maclean Liu 文章 你所不知道的后台进程 SMON 功能   SMON(system monitor process)系统监控后台进程,有时候也被叫做 system clea ...

  4. MySQL 5.7 GTID OOM bug案例分析 --大量压测后主从不同步

    转载自:http://www.sohu.com/a/231766385_487483 MySQL 5.7是十年内最为经典的版本,这个观点区区已经表示过很多次.然而,经典也是由不断地迭代所打造的传奇.5 ...

  5. Python语法 - 推导式

    推导式分为列表推导式(list),字典推导式(dict),集合推导式(set)三种 列表推导式(list comprehension)最擅长的方式就是对整个列表分别做相同的操作,并且返回得到一个新的列 ...

  6. Leetcode题目338:比特位计数(中等)

    题目描述: 给定一个非负整数 num.对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回. 示例 1: 输入: 2 输出: [0,1,1] 示例  ...

  7. zabbix :web 界面显示的监控项值为0或者空

    [参考文章]:[错误汇总]zabbix_get 的值一直为 0 1. 问题现象 zabbix 版本:3.4: server 端部署在 192.168.145.134 ,agent 节点部署在 192. ...

  8. 2018-2019-2 20165210《网络对抗技术》Exp9 Web安全基础

    2018-2019-2 20165210<网络对抗技术>Exp9 Web安全基础 实验目的 本实践的目标理解常用网络攻击技术的基本原理. 实验内容 安装Webgoat SQL注入攻击 - ...

  9. ArcGIS超级工具SPTOOLS-数据处理篇

    1. 数据处理 1.1  两个图层按重叠度赋属性 两个面层按重合度赋属性,下图把依据赋数据属性图层,按重合度,赋值给目标.,重合度设置为负值,取面积最大的. 1.2  分区域消除 按区域字段值相同的, ...

  10. Editplus的运行JAVA的配置

    工具--->参数设置