区块链技术博客
www.b2bchain.cn

JavaSE教学

这篇文章主要介绍了JavaSE教学的讲解,通过具体代码实例进行16409 讲解,并且分析了JavaSE教学的详细步骤与相关技巧,需要的朋友可以参考下https://www.b2bchain.cn/?p=16409

本文实例讲述了2、树莓派设置连接WiFi,开启VNC等等的讲解。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/7039.html。具体如下:

Java教学之Java语言基础

文章目录

  • Java教学之Java语言基础
  • 先了解基本的计算机常识
  • 一、java开发环境的搭建
  • 二、java编程基础
    • 1.变量概念
    • 2.变量的声明
    • 3.使用变量的注意事项
    • 标识符的命名法则
  • 数据类型
    • 数据类型的分类
    • 常用进制及转换
    • 整数数据类型
    • 浮点数据类型
    • 布尔类型
    • 字符类型
    • 基本数据类型的转换
  • 运算符
  • 分支语句
    • 语句一
    • ②语句二
    • ③语句三
    • ④语句四
  • 循环语句
    • 循环语句一 for
    • continue关键字
    • break关键字
    • 双重循环
    • while循环
    • do..while循环
  • 一维数组
    • 一维数组的概念
    • 一维数组的声明方法
    • 一维数组的初始化方法
    • 内存结构 栈区
    • 内存结构之堆区
    • 数组的优缺点
    • 数组工具类常用方法
    • 二维数组
    • 二维数组的声明和初始化方式


先了解基本的计算机常识

1.计算机是一种用于高级计算,使用非常广泛的设备,主要分为计算机硬件和计算机软件两部分
2.计算机硬件是客观存在的相关设备,计算机软件则是负责控制控制各种硬件完成相应工作的需求
3.常见硬件:cpu,输入输出设备,内存,机箱,主板,电源等辅助设备
4.cpu:
①是计算机中最核心的设备
②是计算机的运算核心和控制核心
③主要负责处理计算机发出的指令和计算机软件中的数据
5.内存:
①用于暂时保存CPU中的运算数据以及硬盘和外部储存器交换的数据
②CPU可以直接访问,效率高
③缺点是,内存小,不能永久保存,断电内存中数据会全部丢失
6.硬盘:
①用于永久储存数据,容量大,且断电后不会丢失
②CPU不能直接访问,若想访问,则需要预先加载到内存中来
7.常见的软件分为系统软件和应用软件,系统软件:操作系统
系统软件是其他软件的操作基础
JavaSE教学

一、java开发环境的搭建

1.IDEA下载网址:https://www.jetbrains.com/
(淘宝有卖**程序,木有钱的小可爱可以去买一个十几块,有钱的还是支持正版)

2.JDK:www.sun.com www.oracle.com
(比较恶心的是,很多时候都要注册oracle账号,他还要扯到什么公司)

3.JDK称为Java开发工具包( Java Development Kit)。Java开发人士需
要下载和安装JDK,目前的主流版本为JDK11

4.JRE:称之为Java运行时的环境(Java Runtime Environment),提供了java程序运行所必须的软件环境,无论是java的开发还是运行都必须需要JRE的支持

5.jdk,jre,jvm(java虚拟机)三者关系
JDK都集成了JRE和JVM,所以直接下JDK就可以用
JavaSE教学
6.下载完之后,一路傻瓜式安装(下一步…)
7.配置环境变量:
①此电脑–>属性–>高级系统设置–>环境变量–>在系统环境变量中新建
JAVA_HOME,路径填写JDK安装路径
JavaSE教学

8.检验配置是否成功
打开CMD输入java -version看是否显示版本信息
JavaSE教学
关于IDEA,去淘宝店自己买吧,有钱请支持正版

二、java编程基础

1.变量概念

①变量的概念:在计算机中需要储存一个单个数据时,就可以声明一个变量,变量声明的本质就是在内存中申请一个储存单元,因为该储存单元的内容可以改变,故称为变量
②由于数据储存的数据内容大小不同,故所需要的储存单元大小不同,因而要用数据类型来加以描述,还要给变量加一个名字,为了后续方便访问

2.变量的声明

①声明变量使用
数据类型 变量名 = 初始值 ;
其中 “= 初始值”可以省略,分号不可以省略

   //声明变量     int     i1    =   10; // 数据类型  数据名  =   初始值 分号          int i2;     //其中= 初始值可以省略 加大空格为了好写注释 

3.使用变量的注意事项

①JAVA是强类型语言,因此必须指明数据类型

//错误示范 i1 = 0;//不可 

②不可以重复声明变量

//错误示范 int i1 = 0; int i1; 

③变量在使用前必须初始化

错误示范 int i1; //未初始化直接使用 System.out.println(i1); 

标识符的命名法则

①可以用数字,字母,_(下划线),$,进行命名,其中数字不能开头
②区分大小写,不限长度,不宜过长
③尽量做到见名知意,支持中文,但不推荐
④标识符可以给类/变量/属性/方法/包 起名字


数据类型

数据类型的分类

数据类型一般分为以下两种
①基本数据类型
byte,char,short,boolean,int,float,double,long
②引用数据类型
数组,字符串,枚举,接口,标注

常用进制及转换

①十进制,二进制,八进制,十六进制
十进制为每十进一,二进制为每二进一,依次递推
②二进制最左位为符号位,若是0则代表非负数,若是1则代表负数
③正十进制转换为二进制
用十进制数不断除2,不断取出余数,直到商为0,然后将取出的余数按逆序排序
JavaSE教学
正二进制转化为十进制
①加权法,使用二进制中的每个数字乘以当前位的权重再累加起来
101101 = 1 * 2 ^ 5 + 0 * 2 ^ 4 + 1 * 2 ^ 3 + 1 * 2 ^ 2 + 0 * 2 ^ 1 + 1 * 2 ^0
(注意数字是从0开始排列

负十进制转化为二进制
①先将负数的绝对值转化为二进制
②按位取反再加一
-45 绝对值 45 转二进制 00101101 按位取反 11010010
(一个字节等于8位补全了8位)
之后加一 11010011

负二进制转化为十进制
①先减1再按位取反,合并为十进制整数后添加负号
-45 11010011 先减一 11010010 按位取反 00101101

单个字节表示的数字范围
非负数表示范围:0000 0000 ~ 0111 1111 => 0 ~ 127 => 0 ~ 2^7-1
负数表示范围:1000 0000 ~ 1111 1111 => -128 ~ -1 => -2^7 ~ -2^0
单个字节表示的整数范围是:-2 ^ 7 ~ 2 ^ 7-1,也就是-128 ~ 127

整数数据类型

整数数据类型包括:byte,int,short,long
byte:占一个字节
short:占两个字节
Int:占四个字节
long:占四个字节
(每个类型表示范围,可以用单个字节表示范围推导出)
在Java程序中直接写出的整数叫做直接量,字面量,常量,java都会自动默认为int,若想表示更大的数据在后面加l或L,推荐L

int i1 = 10; int i2; i2 = i1 * 100;//100即为默认int类型 100L则代表了100long类型的 

浮点数据类型

①double占8个字节,叫做双精度浮点数,可表示15位有效数字
范围-1.798E308~1.798E308
②float占四个字节,叫做点精度浮点数,可表示7位有效数字
范围3.403E38~3.403E38。
③java中直接写出的浮点数,都属于double类型
若想要表示float类型的,只需要在后面加上f或F(类比整数类型)

布尔类型

①boolean类型,两种值 一种是表示真的true 一种是表示假的false
②boolean所占的字节数没有明确规定,可以认为是1字节

字符类型

①在java中用来表示,单个字符的的数据类型:char ‘a’这样的表示
②char的底层原理是,对应了ASCALL码表中的每一个字符,用数字编号代表不同的字符
③要求掌握的ASCII有:‘0’ – 48 ‘A’ – 65 ‘a’ – 97 空格 – 32 换行符 – 10

基本数据类型的转换

①自动类型转换(从小类型向大类型进行转换)
byte –> short –> int –> long –> float –> double
char –> int
JavaSE教学
②强制数据类型转换一般用于大类型转换小类型
目标类型 = (目标类型)源类型变量名

int a = 1;  byte  =  (byte)a //可以把a强制转换为byte  //强制类型转换有风险,原本数据类型的保存的数值范围可能会超过墙砖后的数据类型,导致数据溢出 

运算符

①算术运算符
“ + ”表示加法运算
" – "表示减法运算
“ / ”表示除法运算
“ * ”表示乘法运算
“ % ”表示求余,求模的运算

其中 + 还可以表示字符串的拼接
判断标准为 若两边都位数字,则相加,若加号两边有一个位字符串,则进行字符串的拼接

int i1 = 10; int i2 = 5; i1 + i2  //15 i1 - i2 //5 i1 * i2 //50 i1 / i2 //2 i1 % i2 //0 i1 + string //10string  

②关系比较运算符
小于 <
大于 >
不等于 !=
大于等于 >=
小于等于 <=
等于 ==

注意,关系比较运算符返回的都是boolean类型的结果
为真则true 为假则false

int i1 = 10; int i2 = 5; i1 < i2 //false i1 > i2 //true 

不再一一列举用法

③自增自减运算符
“ ++ ”自增运算符
“ – ” 自减运算符

注意:只能用于变量 不能用于常数

int i1 = 10; i1 ++ //11 i1 -- //10 

④逻辑运算符
“&&”与运算符 相当于 并且 同真为真 一假为假

true && false //false true && true //true 

“||”或运算符 相当于或 同假为假 一真为真

true || falase //true false || false //false 

“!” 非运算符 真为假,假为真

!true //false !false //true 

注意:逻辑运算符 两侧的操作数都必须是boolean表达式

短路特性:
与运算符第一个为假时,计算机将不会判断第二个表达式的真假,直接判 定整个表达式为假
或运算符第一个为真时计算机将不会判断第二个表达式的真假,直接判 定整个表达式为真

③三目运算符
条件 ?表达式1 :表达式2
条件为真则执行 表达式1 条件为假 执行表达式2

int i1 = 10; int i2 = 5; i1 < i2 ? System.out.println(i1) : System.out.println(i2) //5 

④赋值运算符
” = “ 赋值运算符
用于将左边的数值赋值给 右边的变量 (会覆盖原来的值)

int i1 = 10; i1 = 20; //现在i1为20 

赋值运算符和算术运算符结合
+= -= *= 等等

int i1 = 10; i1 += 10; //表示含义为 i1先加10再赋值给i1 现在i1 = 20 

⑤移位运算符
“ << ” 左移运算符 将二进制位向左移,右边空出用0补充
“ >> ”右移运算符 将二进制位向右移动,左边空出用符号位补充
“ >>> ” 右移运算符,将二进制位向右移动,左边空出用0补位


& 表示按位与运算符,按照二进制位进行与运算,同1为1,一0为0.
| 表示按位或运算符,按照二进制位进行或运算,一1为1,同0为0.
~ 表示按位取反运算符,按照二进制位进行取反,1为0,0为1.
^ 表示按位异或运算符,按照二进制位进行异或运算,同为0,不同为1.

分支语句

需要使用条件判断的时候使用分支语句
分支语句结构

语句一

if(判断条件){ 	执行语句 } //当判断条件成立时 执行if里面的执行语句 //条件不成立则跳过该语句 

找最大值

 public static void main(String[] args) {         int i1 = 10;         int i2 = 5;         if(i1 < i2){             System.out.println(i2);         }         System.out.println(i1);     } 

②语句二

if(判断条件){ 	执行语句1 }else{ 	执行语句2 } //条件成立执行性语句1,不成立执行语句2 

判断正负

 public static void main(String[] args) {          int i1 = -10;         if(i1 > 0){             System.out.println("为正数");         }else{             System.out.println("为负数");         }     } 

③语句三

if(条件1){ 	执行语句1 }else if(条件2){ 	执行语句2 }else if(条件3){ 	执行语句3 } //条件1成立,则执行执行语句1 //条件2成立,则执行执行语句2......以此类推 

④语句四

switch…case

switch(变量或表达式){ 	case 字面值1:执行语句1break; 	case 字面值2:执行语句2break; 	case 字面值3:执行语句3break; 	... 	default:执行语句n; } //计算变量或表达式的值,若与字面值1对应则,执行语句1, //若与字面值2对象,执行语句2....以此类推 //若都不对应 执行执行语句n 

switch…case支持int short byte char类型,从jdk1.5开始支持枚举
jdk1.7开始支持String类型

循环语句

当想要重复执行某一条语句的时候,就要用到循环语句

循环语句一 for

for(初始化表达式; 条件表达式; 修改初始值表达式){ 	循环体 } //进入for循环的时候,先执行初始化表达式,一般是声明变量并赋值 //然后执行条件表达式,判断条件表达式是否成立,成立则执行循环体 //然后执行修改初始值表达式,然后再次判断表达式是否成立 //知道条件表示不成立为止 

打印1-100的所有数

public static void main(String[] args) {          for(int i = 1;i <= 100;i++){              System.out.println(i);                      }     } 

continue关键字

continue关键字可以跳过本次循环去执行下一次循环

打印1-20,并跳过所有5的倍数

public static void main(String[] args) {          for(int i = 1;i <= 20;i++){             if(i % 5 == 0){                 continue;             }             System.out.println(i);         }     } 

break关键字

break关键字用于跳出当前循环

打印1-20 打印到10 跳出当前循环

public static void main(String[] args) {         for(int i = 0;i <= 20;i++){             if(i == 10){                 break;             }             System.out.println(i);         }     } 

打印到9就会停止
JavaSE教学
for( ; ; ) – 这种没有循环条件的循环叫做 无限循环,俗称“死循环”

双重循环

for(初始化表达式1; 条件表达式1; 修改初始值表达式1){ 	for(初始化表达式2; 条件表达式2; 修改初始值表达式2){ 		循环体 	} } 

执行顺序:
先判断条件表达式1是否成立,成立则执行内部for循环,知道内部for循环的条件表示2不成立,则跳出内部表达式,再次执行外部for循环,知道条件表示1也不成立

双重循环的特点:
1.外层循环用于控制打印行数,内层循环用于控制打印列数,外层循环多走一次,内层循环从头跑到尾一次
2.开发中若需要多行多列,则使用多重循环
3.不易嵌套太多,一般来说最多嵌套3层,最常见为2层

使用双重循环打印
JavaSE教学

 public static void main(String[] args) {         for(int i = 0; i < 5 ; i++){             for(int j = 0;j < 5;j++){                 System.out.print("*");             }             System.out.println();         }     } 

break关键字跳出多层循环
• 在嵌套的循环结构中,break用于退出所在循环体。
• 如果要退出外层循环体,需要使用标号的方式。
outer: for (…) {
for(…) {
break outer;
}
}

  public static void main(String[] args) {         outer:for(int i = 0; i < 5 ; i++){             for(int j = 0;j < 5;j++){                 System.out.print("*");                 break outer; //这样只会打印一次,就会跳出外部循环,这个循环结束             }             System.out.println();         }     } 

while循环

while(循环条件){ 	循环体 } 

循环条件为真时执行循环体,直到循环条件为假
while循环和for循环的差别:
1.二者是可以完全互相替换的,推荐使用for循环
2.while循环更适用于不明确具体循环次数的情况
3.for循环适用于明确循环次数的情况
4.while(true) 等价于 for( ; ; ) 都表示无限循环

do…while循环

do{ 	循环体; }while(条件表达式); 

执行顺序:
先执行循环体,在判断条件表达式是否成立,若成立则继续执行,不成立,则停止

特点:
至少会执行一次循环

一维数组

一维数组的概念

1.当需要储存单个数值的时候,只需要声明一个变量即可
2.当需要记录多个数据类型相同的数值时,声明一个数组即可
3.数组本质上就是在内存中申请一块连续的储存单元
4.数组是相同数据类型多个元素的容器,元素按线性排列,是一种引用数据类型

一维数组的声明方法

1.数据类型[] 数组名称 = new 数据类型[数组长度]
2.调用数组的length属性,可以获得数组的长度
3.数组的下标是从0开始的,一个长度n的数组,下表是从0-n-1;

一维数组的初始化方法

1.不初始化 基本数据类型数组
int byte short long char 系统自动初始化为0;
boolean初始化为false;
2.初始化方法
数据类型[] 数组名称 = {初始值1,初始值2,初始值3}

内存结构 栈区

栈区用来保存程序运行当中所有的局部变量,一个运行的java程序从开始到结束会有多次变量声明

内存结构之堆区

JVM会在内存空间中开辟一个称为堆区的地方,这部分用于储存new 关键字创建的数组和对象

数组的优缺点

1.用下表进行数据访问很方便,速度很快
2.数组要求所有元素类型相同
3.数组要求内存空间连续,且长度一旦确定,便不可改变
4.增加和删除时,可能会涉及到大量元素的移动,效率低

数组工具类常用方法

1.static String toString(int[] a) 输出数组中的内容
2.static void fill(int[] a, int val) 将参数指定元素赋值给数组中所有元素
3.static boolean equals(boolean[] a,boolean[] a2) 判断两个数组元素内容和 次序是否相同
4.static void sort(int[] a) 对数组中的元素进行从小到大排序
5.static int binarySearch(int[] a, int key) 从数组中查找参数指定元素所在的位置

public static void main(String[] args) {         int[] array1 = {1,2,3,4,5};         int[] array2 = {3,8,5,10,7};         int[] array3 = new int[5];          //打印数组测试         System.out.println(Arrays.toString(array1));          //给所有元素从小到大排序         Arrays.sort(array2);         System.out.println(Arrays.toString(array2));          //给数组填充元素         Arrays.fill(array3,10);         System.out.println(Arrays.toString(array3));          //查找指定元素所在位置         int i = Arrays.binarySearch(array1, 3);         System.out.println(i);          //比较两个数组的内容和次序是否相同         boolean equals = Arrays.equals(array2, array3);         System.out.println(equals);     } 
[1, 2, 3, 4, 5] [3, 5, 7, 8, 10] [10, 10, 10, 10, 10] 2 false 

二维数组

1.二维数组本质上就是,多个一维数组罗叠在一起
2.二维数组的元素,是一维数组,而每个一维数组里的元素才是真正的数值

二维数组的声明和初始化方式

声明方式:
数据类型[][] 数组名称 = new 数据类型[行数][列数]

初始化方式:
数据类型[][] 数组名称 = {{元素1,元素2…},{元素1,元素2…}}

本文转自互联网,侵权联系删除JavaSE教学

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » JavaSE教学
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们