本次总结了毕向东老师的视频课程笔记,以备后期学习。

目录

1.关键字

2.标识符

3.注释

4.常量和变量

5.运算符


1.关键字

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

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

java字符串数字加字母校验 java字符串数字相加_Java

java字符串数字加字母校验 java字符串数字相加_Java_02

2.标识符

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

组成特点:

  • 由26个英文字母大小写,数字(0-9 )和下划线(_) 以及'$' 组成。
  • 定义合法标识符规则:a)数字不可以开头  b)不可以使用关键字;
  • Java中严格区分大小写;
  • 注意:在起名字的时,为了提高阅读性,要使标识符尽量有意义。

Java中的名称规范:

  • 包名:多单词组成时所有字母都小写 xxxyyyzzz
  • 类名接口名:多单词组成时,所有单词的首字母大写  XxxYyyZzz
  • 变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写 xxxYyyZzz
  • 常量名:所有字母都大写。多单词时每个单词用下划线连接 XXX_YYY_ZZZ

3.注释

定义:用于注解说明解释程序的文字就是注释。

意义:提高了代码的阅读性。

Java中的注释格式:

  • 单行注释 : 格式: //注释文字
  • 多行注释 : 格式: /* 注释文字*/
  • 文档注释 :  格式: /** 注释文字*/

注意:

a) 对于单行和多行注释,被注释的文字,不会被JVM(java虚拟机)解释执行

b) 对于文档注释,是java特有的注释,其中注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。

c) 注释是一个程序员必须要具有的良好编程习惯。初学者编写程序可以养成习惯:先写注释再写代码;

d) 将自己的思想通过注释先整理出来,再用代码去体现。因为代码仅仅是思想的一种体现形式而已。

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

4.常量和变量

常量:程序中不能改变的数值

Java中常量的分类:

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

对于整数:java有三种表现形式 a)十进制:0-9 ,满10进1. b)八进制:0-7 ,满8进1. 用0开头表示

c) 十六进制:0-9,A-F,满16进1. 用0x开头表示

进制的基本转换:

1)十进制与二进制互转:十进制转成二进制除以2取余数;二进制转成十进制乘以2的幂数。

java字符串数字加字母校验 java字符串数字相加_System_03

2)注意:4个二进制位就是一个十六进制位;3个二进制位就是一个八进制位。

3)负数的二进制表现形式:对应的正数二进制取反加1

java字符串数字加字母校验 java字符串数字相加_System_04

变量的概念:内存中的一个存储区域;该区域有自己的名称(变量名)和类型(数据类型);

该区域的数据可以在同一类型范围内不断变化。

为什么要定义变量:用来不断的存放同一类型的常量,并可以重复使用。

使用变量注意:变量的作用范围(一对{}之间有效);记得定义变量时初始化值。

定义变量的格式:数据类型 变量名= 初始化值;

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

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

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

java字符串数字加字母校验 java字符串数字相加_数据_05

类型转换:分为自动类型转换(也叫隐式类型转换)和强制类型转换(也叫显式类型转换)。

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

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

试分析一下下面两个输出到控制台的区别?

System.out.println('a');
System.out.println('a'+1);

java字符串数字加字母校验 java字符串数字相加_java字符串数字加字母校验_06

第二行的字符'a'和整数1相加时,结果自动提升为int类型,根据ASCⅡ表中的字符a对应着数字为97,所以最后结果为98.

下面再说一下自动类型提升例子:

byte b = 3;
 int x = 4;
 x = x + b;
 System.out.println(x);

java字符串数字加字母校验 java字符串数字相加_java字符串数字加字母校验_07

强制类型转化:

byte b = 3;
      b = b + 4;
      System.out.println(b);

 出错的原因在于:字节b加整数4会自动提升为int型,int型存到在byte中可能存不下,因此报错。

改正的措施如下:进行强制类型转换。

byte b = 3;
b =(byte)(b + 4);
System.out.println(b);

java字符串数字加字母校验 java字符串数字相加_System_08

分析下面的程序:

byte b1=2,b2=3,b;
b=b1+b2;
System.out.println(b);

编译会出错,原因:b1+b2为int型,存到byte型时可能装不下。

byte b1=2,b2=3,b;
b=2+3;
System.out.println(b);

 

java字符串数字加字母校验 java字符串数字相加_Java_09

编译成功,结果是5.

5.运算符 

分为:算术运算符;赋值运算符;比较运算符;逻辑运算符;位运算符;三元运算符。

算数运算符:

java字符串数字加字母校验 java字符串数字相加_Java_10

注意%取的余数:

System.out.println(1%5);

结果是:1

算术运算符的注意问题:

1)如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论。

System.out.println(5%-2);

 

java字符串数字加字母校验 java字符串数字相加_数据_11

System.out.println(-5%2);

java字符串数字加字母校验 java字符串数字相加_Java_12

此时被模数是负数时,负号不可以省略。

2)对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。

int x=3510;
x=x/1000*1000;  //注意此时先计算x/1000的值为3,只取整数部分;
System.out.println(x);

java字符串数字加字母校验 java字符串数字相加_System_13

3)“+”除字符串相加功能外,还能把非字符串转换成字符串;

System.out.println("5+5="+5+5);

java字符串数字加字母校验 java字符串数字相加_java字符串数字加字母校验_14

注意:字符串数据和任何数据使用+都是相连接,最终都会变成字符串。

赋值运算符:= , +=, -=, *=, /=, %=

a+=5;等同运算a=a+5;

分析一个例子:

short s=3;
s=s+2;
System.out.println(s);

编译会出错哦:

java字符串数字加字母校验 java字符串数字相加_System_15

还是之前存在的空间不够用的原因。

short s=3;
s+=2;
System.out.println(s);

 猜猜这会编译出错吗?

没有问题的。

java字符串数字加字母校验 java字符串数字相加_System_16

比较运算符:

java字符串数字加字母校验 java字符串数字相加_java字符串数字加字母校验_17

注意:比较运算符的结果都是boolean型,也就是要么是true,要么是false 。

           比较运算符“==”不能误写成“=” 

 

逻辑运算符

java字符串数字加字母校验 java字符串数字相加_System_18

注意:

  •  逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6  ;
  •  “&”和“&&”的区别:单&时,左边无论真假,右边都进行运算;双&时,如果左边为真,右边参与运算,如果左边为假,那
    么右边不参与运算;
  •  异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。

思考一个问题:一个二进制的数如何表示成十六进制?

我们知道4个二进制位为1个十六进制位,应该不断的取其最后四个二进制位进行转化。

方法就是让这个二进制数通过&15获取最后四位。要获取下一组四位,继续将该二进制数右移4位再进行&15。

知道取完所有的位数为止。

int num=60;
 int n1=num & 15;
 System.out.println((char)(n1-10+'A'));
 int temp=num>>>4;
 int n2=temp&15;
 System.out.println(n2>9?(char)(n1-10+'A'):n2);

java字符串数字加字母校验 java字符串数字相加_数据_19

由于先取的是低位,所以为3C. 

位运算符:

java字符串数字加字母校验 java字符串数字相加_java字符串数字加字母校验_20

特别注意:位运算是直接对二进制进行运算的。

java字符串数字加字母校验 java字符串数字相加_数据_21

java字符串数字加字母校验 java字符串数字相加_数据_22

 

java字符串数字加字母校验 java字符串数字相加_java字符串数字加字母校验_23

 

注意上图中有一个知识点需记住:一个数异或同一个数两次还是它本身。

System.out.println(7^5^5);

java字符串数字加字母校验 java字符串数字相加_System_24

考虑下面的问题:

 问题1:最有效率的方式算出2乘以8等于几?; 

问题2:对两个整数变量的值进行互换(不需要第三方变量)。

对于问题1采用移位操作进行运算,2乘以8相当于向左移3位。

System.out.println(2<<3);

java字符串数字加字母校验 java字符串数字相加_Java_25

问题2:采用异或的方法来实现

int n=3,m=5;
n = n ^ m;
m = n ^ m;
n = n ^ m;
System.out.println("n="+n+' '+"m="+m);

 

java字符串数字加字母校验 java字符串数字相加_数据_26

三元运算符:

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

意思是如果条件表达式的值为true,运算后的结果是表达式1;如果条件为false,运算后的结果是表达式2。

int x=3;
x=(x>1)?1:5;
System.out.println(x);

java字符串数字加字母校验 java字符串数字相加_System_27

有一个比较特殊的转义字符:通过'\'来转变后面字母或者符号的含义.

其中包括:

        \n:换行。
        \b:退格。相当于backspace。
        \r:按下回车键。window系统,回车符是由两个字符来表示\r\n.
        \t:制表符。相当于tab键。

System.out.println("Hello \tworld"); //在中间插入制表符
  System.out.println("\"Hello World\"");
  System.out.println("\\Hello");
  System.out.println("Hello World\r\n");

java字符串数字加字母校验 java字符串数字相加_java字符串数字加字母校验_28