Java大数据开发和安全开发
- (一)Java注释符
- 1.1 单行注释 //
- 1.2 多行注释 /* */
- 1.3 文档注释 /** */
- 1.4 各种注释区别
- 1.5 注释的特点
- 1.5 注释的快捷键
- (二)Java的字面量
- (三)Java的变量
- 3.1 认识变量
- 3.2 为什么要用变量?
- 3.3 变量在计算机中的执行原理
- 3.4 变量的特点
- 3.5 变量的应用
- 3.6 变量的总结
- 3.7 变量的注意事项
- (四)Java关键字和标识符
- 4.1 关键字
- 4.2 标识符
- (五)变量的详解
- 5.1 二进制
- 5.2 十进制转二进制的算法
- 5.3 计算机中表示数据的最小单元
- 5.4 其他数据形式是如何存储的
- 5.4.1 字符在计算机中是如何存储的
- 5.4.2 图片在计算机中是如何存储的
- 5.5 二进制转十进制
- 5.6 八进制和十六进制
- 5.7 计算机的数据单位
- (六)Java的数据类型
- 6.1 **`数据类型的分类`**
- 6.2 基本数据类型
- 6.2 引用数据类型
- 6.3 类型转换
- 6.3.1 自动类型转换
- 6.3.2 表达式的自动类型转换
- 6.3.3 强制类型转换
- (七)运算符
- 7.1 算数运算符
- 7.2 自增自减运算符
- 7.3 赋值运算符
- 7.4 算数运算符
- 7.5 算数运算符
- 循环语句
- 分支语句
(一)Java注释符
注释是写在程序中对代码进行解释说明的文字,方便自己和其他人查看,以便理解程序的。
1.1 单行注释 //
public class NoteDemo {public static void main(String[] args) {// 以下是一个打印语句,是往控制台输出内容的System.out.println("hello world");}
}
1.2 多行注释 /* */
public class NoteDemo {public static void main(String[] args) {System.out.println("hello world");/*System.out.println("hello world");System.out.println("hello world");System.out.println("hello world");*/}
}
1.3 文档注释 /** */
/**目标:学会使用注释这个程序就是讲解注释的*/
public class NoteDemo {public static void main(String[] args) {System.out.println("hello world");}
}
1.4 各种注释区别
1.5 注释的特点
注释不影响程序的执行
1.5 注释的快捷键
(二)Java的字面量
计算机是用来处理数据的,字面量就是告诉程序员:数据在程序中的书写格式,也就是各种数据在java中怎么表达,比如数字,字符,字符串怎么表达
public class LiteralDemo {public static void main(String[] args) {// 目标:需要同学们掌握常见数据在程序中的书写格式吧。// 1、整数System.out.println(666);// 2、小数System.out.println(99.5);//3、字符:必须要用单引号围起来,有且只能有一个字符System.out.println('a');System.out.println('0');System.out.println('中');// System.out.println('中国'); 两个字符System.out.println(' '); //空字符// System.out.println(''); 不能不写// 特殊的字符:\n 代表的是换行的意思 \t代表的是一个tabSystem.out.println('中');System.out.println('\n');System.out.println('国');System.out.println('\t');// 4、字符串:必须用双引号围起来,里面的内容其实可以随意System.out.println("我爱你中国abc");System.out.println(" ");System.out.println("");System.out.println("我");// 5、布尔值:只有2个值 truefalseSystem.out.println(true);System.out.println(false);}
}
(三)Java的变量
变量的学习路径
3.1 认识变量
什么是变量 ?
- 变量是用来记住程序要处理的数据的。
变量的定义格式
int age = 23;
3.2 为什么要用变量?
- 使用变量记要处理的数据,编写的代码更灵活,管理代码更方便。
public class VariableDemo {public static void main(String[] args) {// 目标:认识变量,掌握使用变量的好处,变量的特点,应用场景。// 1、定义一个整型变量记住一个整数// 数据类型 变量名= 数据;// 注意:=在Java中是赋值的意思,从右往左看int age = 23;System.out.println(age);// 2、记住一个人的成绩double score = 99.5;System.out.println(score);System.out.println("----");//3、使用变量的好处:便于扩展和维护。System.out.println(666); //想把666改成888 需要每个都改System.out.println(666);System.out.println(666);int number = 888;System.out.println(number); //想把888改成666 只需要改变量即可,这就是便于维护System.out.println(number);System.out.println(number);System.out.println(number);}
}
3.3 变量在计算机中的执行原理
- 变量就是内存中的一块区域,可以理解成一个盒子,用来装一个数据的!
3.4 变量的特点
变量中装的数据是可以被替换的
// 4、变量的特点:里面装的数据可以被替换int age2 = 18;System.out.println(age2);age2 = 19;//赋值:从右边往左边执行System.out.println(age2);age2= age2 + 1;// 赋值:从右边往左边执行System.out.println(age2);
3.5 变量的应用
写程序对数据进行处理就很方便
// 5、需求:钱包有9.5元,收到了10元红包,又发出去了5元红包,请输出各阶段钱包的情况double money=9.5;// 钱包System.out.println(money);// 收红包10元。money = money + 10;System.out.println(money);// 发出去5元。money = money - 5;System.out.println(money);
3.6 变量的总结
3.7 变量的注意事项
(四)Java关键字和标识符
4.1 关键字
-
Java语言自己用到的一些词,有特殊作用的,我们称之为关键字,如:public、class、int、double…
-
注意:关键字是java用了的,我们就不能用来为做为:类名、变量名,否则会报错!
4.2 标识符
标志符就是名字,我们写程序时会起一些名字,如类名
、变量名
等等都是标识符。
标识符的要求
- 基本组成:由数字、字母、下划线()和美元符($)等组成
- 强制要求:不能以数字开头、不能用关键字做为名字、且是区分大小写的。
标识符的建议规范
- 变量名称:满足标识符规则,同时建议用英文、有意义、首字母小写,满足“驼峰模式”例如:int studyNumber = 59;
- 类名称:满足标识符规则,建议全英文、有意义、首字母大写,满足“驼峰模式”,例如: HelloWorld, Student
(五)变量的详解
数字是以二进制的形式存储的
5.1 二进制
- 只有0、1,按照逢2进1的方式表示数据
5.2 十进制转二进制的算法
5.3 计算机中表示数据的最小单元
- 计算机中表示数据的最小单元:一个字节(bvte,简称B,是使用8个二进制位组成的)
- 字节中的每个二进制位就称为位(bit,简称b),1B=8b
5.4 其他数据形式是如何存储的
5.4.1 字符在计算机中是如何存储的
public class ASCIIDemo {public static void main(String[] args) {// 目标:掌握ASCII编码表的编码特点。System.out.println('a'+10);//97 + 10 = 107 a的值对应的是编码表里的值97System.out.println('A'+10);//65 + 10 = 75System.out.println('0'+10);//48 + 10 = 58}
}
5.4.2 图片在计算机中是如何存储的
- 图片就是无数个像素点组成的
- 每个像素点的数据:用0~255255255表示其颜色
先存储每个像素点的数值 ,每个像素点由三位数 255 0 255 ,计算机挨个保存每个像素点的值就可以存储一张图片
5.5 二进制转十进制
5.6 八进制和十六进制
- 为了便于观察和表示二进制,推出了八进制和十六进制。
- 每3位二进制作为一个单元,最小数是0,最大数是7,共8个数字,这就是八进制。
- 每4位二进制作为一个单元,最小数是0,最大数是15,共16个数字,依次用:0~9ABCDEF 代表就是十六进制。
//二进制 八进制 十六进制在程序中的写法。int a1 =0B01100001;System.out.println(a1);int a2 = 0141; // 0开头的数据当成八进制看待!System.out.println(a2);int a3= 0XFA; // 0X开头的数据是十六进制System.out.println(a3);
5.7 计算机的数据单位
- 计算机表示数据的最小组成单元是:字节,1B=8b。
- 在B的基础上,计算机发展出了KB、MB、GB、TB、…… 这些数据单位!
(六)Java的数据类型
6.1 数据类型的分类
6.2 基本数据类型
基本数据类型:4大类8种
public class VariableDemo2 {public static void main(String[] args) {// 目标:掌握基本数据类型的使用。// 1、byte short int longbyte a=127; // -128-127// byte a2=128;// 越界了short s= 13244;//short s1=93244;//越界了int i = 422424;// 默认//|注意:随便写一个整型字面量默认是int类型的,424242244444虽然没有超过long的范围,但是超过了本身int类型的范围// 如果希望随便写一个整型字面量默认是long类型的,需要在后面加上L/llong lg = 424242244444L;// 2、float double// 注意:随便写小数字面量,默认是double,如果希望小数是float,后面加上F/ffloat f = 3.14F;double d = 56.45;//3、char 字符型char ch='a';char ch2='中';// 4、booleanboolean flag =true;boolean flag2 = false;//5、String// 拓展一种引用数据类型,后面要用// String 称之为字符串类型,定义的变量可以用于记住一个字符串数据String name ="张三";System.out.println(name);}
}
6.2 引用数据类型
//5、String// 拓展一种引用数据类型,后面要用// String 称之为字符串类型,定义的变量可以用于记住一个字符串数据String name ="张三";System.out.println(name);
6.3 类型转换
- 1、存在某种类型的变量赋值给另一种类型的变量
- 2、存在不同类型的数据一起运算
6.3.1 自动类型转换
类型范围小的变量,可以直接赋值给类型范围大的变量
public class TypeConversionDemo {public static void main(String[] args) {// 目标:理解自动类型转换机制。byte a= 12;int b = a;//发生自动类型转换System.out.println(a);System.out.println(b);}
}
自动类型转换原理:
byte 占1个字节int 占4个字节类型范围小的变量,可以直接赋值给类型范围大的变量
自动类型转换的其他形式
public class TypeConversionDemo {public static void main(String[] args) {// 目标:理解自动类型转换机制。int c= 100;//4字节double d=c;//8字节 发生了自动类型转换了System.out.println(d);char ch='a';// 2字节 'a'97 =>00000000 01100001int i=ch;// 4字节 发生了自动类型转换了=> 00000000 00000000 00000000 01100001System.out.println(i);}
}
6.3.2 表达式的自动类型转换
-
不同类型的变量或者数据一起远算,最终运算出的数据的类型是什么??
-
在表达式中,小范围类型的变量,会自动转换成表达式中较大范围的类型,再参与运算
注意事项:
- 表达式的最终结果类型由表达式中的**
最高类型决定
** - 在表达式中,byte、short、char 是直接转换成int类型参与运算的。
public class TypeConversionDemo2 {public static void main(String[] args) {// 目标:掌握表达式的自动类型转换机制。byte a = 10; int b = 20;long c = 30;long rs = a + b + c; //表达式的最终结果类型由表达式中的**`最高类型决定`** System.out.println(rs);double rs2 = a + b + 1.0; //表达式的最终结果类型由表达式中的**`最高类型决定`** System.out.println(rs2);byte i = 10;short j= 30;int rs3 = i + j; //在表达式中,byte、short、char 是直接转换成int类型参与运算的System.out.println(rs3);// 面试笔试题:byte b1 = 110; //byte的范围是-128-127 110+80=190 超过了byte的范围 为了防止运算错误程序自动转换成了intbyte b2 = 80;int b3 = b1 + b2; //在表达式中,byte、short、char 是直接转换成int类型参与运算的System.out.println(b3);}
}
6.3.3 强制类型转换
- 类型范围大的数据或者变量,直接赋值给类型范围小的变量,会报错
-
可以强行将类型范围大的变量、数据赋值给类型范围小的变量
byte b =(byte)a;
public class TypeConversionDemo3 {public static void main(String[] args) {// 目标:掌握强制类型转换。int a= 20;byte b =(byte)a; // ALT + ENTER 强制类型转换。System.out.println(a);System.out.println(b);}
}
强制类型转换在计算机中的执行原理
public class TypeConversionDemo3 {public static void main(String[] args) {// 目标:掌握强制类型转换。int i = 1500;byte j=(byte) i;System.out.println(j);}
}
double d = 99.5;int m =(int)d;// 强制类型转换System.out.println(m);//丢掉小数部分,保留整数部分>>>99
注意事项
- 强制类型转换可能造成数据(丢失)溢出
- 浮点型强转成整型,直接丢掉小数部分,保留整数部分返回
(七)运算符
7.1 算数运算符
public class OperatorDemo {public static void main(String[] args) {// 目标:掌握基本的算术运算符的使用。int a = 10;int b = 2;System.out.println(a + b);System.out.println(a - b);System.out.println(a * b);//20System.out.println(a / b);//5System.out.println(5 / 2);//2.5 ==> 2System.out.println(5.0 / 2);//2.5 想要的到小数int i = 5;int j = 2;System.out.println(1.0 * i / j);// 2.5System.out.println(a % b);//0System.out.println(3 % 2);//1}
}
+符号可以做连接符的
-
+符号与字符串运算的时候是用作连接符的,其结果依然是一个字符
-
怎么判断是连接符还是运算符
独门秘籍
能算则算,不能算就在一起。(计算机很聪明)
public class OperatorDemo {public static void main(String[] args) {// 目标2:掌握使用+符号做连接符的情况。int a2 = 5;System.out.println("abc"+ a2);//"abc5"System.out.println(a2+5);//10System.out.println("itheima" + a2 +'a'); // "itheima5a"System.out.println(a2+'a'+ "itheima"); // 102itheima}
}
7.2 自增自减运算符
注意
:
- ++、-- 只能操作变量,不能操作字面量的
public class OperatorDemo2 {public static void main(String[] args) {// 目标:掌握自增自减运算符的使用。int a= 10;a++; // a = a + 1++a;System.out.println(a);a--;//a = a - 1--a;System.out.println(a);// System.out.println(2++);// 自增减只能操作变量不能操作字面量的,会报错!}
}
- ++、-- 如果不是单独使用(如在表达式中、或者同时有其它操作),放在变量前后会存在明显区别
- 如果单独使用放前放后是没有区别的,
- 非单独使用:在变量前,先进行变量自增/自减,再使用变量。
- 非单独使用:在变量后,先使用变量,再进行变量自增/自减。
public class OperatorDemo2 {public static void main(String[] args) {// 目标:掌握自增自减运算符的使用。int i= 10;int rs=++i;// 先加后用System.out.println(rs);System.out.println(i);int j= 10;int rs2 =j++;// 先用后加System.out.println(rs2);System.out.println(j);}
}
自增、自减拓展案例
int m=5;int n = 3;//m 5 6 5 4//n 3 4 3// 6 - 5 + 5 - 4 + 4 + int result = ++m - --m + m-- - ++n + n-- + 3;System.out.println(result);//9System.out.println(m);//4System.out.println(n);//3
7.3 赋值运算符
基本赋值运算符
- 就是“=”,从右边往左看
扩展赋值运算符
注意:扩展的赋值运算符隐含了强制类型转换
public class OperatorDemo3 {public static void main(String[] args) {// 目标:掌握扩展赋值运算符的使用。// +=// 需求:收红包double a=9.5;double b=520;a += b;// a = (double)(a + b); //赋值运算符隐含了强制类型转换System.out.println(a);//-= 需求:发红包double i= 600;double j= 520;i-=j;//i = (double)(i-j);System.out.println(i);int m= 10;int n=5;m *= n;//等价形式:m = (int)(m * n)m /= n;//等价形式:m = (int)(m / n)m %= n;//等价形式:m = (int)(m % n)System.out.println(m);}
}
练习题:
public class OperatorDemo3 {public static void main(String[] args) {// 目标:掌握扩展赋值运算符的使用。byte x=10;byte y= 30;// x = x + y;// 编译报错// x = (byte)(x + y);// x += y; //等价形式:x = (byte)(x + y);System.out.println(x);}
}