本文作者 Mr.赵
Email: lovelyalan@foxmail.com
原创文章,转载标明作者,连载中
Java是Sun Microsystems于1995年推出的高级编程语言;
- 易学性 2.强壮的 3.安全性 4.高性能 5.解释性 6.面向对象 7.跨平台的
支持windows,unix,苹果Mac系统
Java SE 标准版
支持面向桌面级应用
Java ME 小型版
支持Java程序运行在移动终端
Java EE 企业版
针对企业的对于Web应用程序开发
JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE
JRE是如果你想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
public class HelloWorld { public static void main(String[] args){ System.out.print("Hello world!"); } }
编译概念: 使用 javac 将 源文件(.java) 编译为 字节码文件(.class)
反编译概念:将 **字节码文件(.class)**转换成 源文件(.java)的过程称为反编译
Javadecompilers 一个免费快速的反编译网站
“变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。
先声明,再使用.
示例:
int age=18;
以数字,字母,下划线和$符号组成,其中不能以数字开头
0a , 0b , 2hello这样以数字开头的变量名不可以
ab , x , $hello , _i 这样的变量符合要求
不能和Java中的关键字重名;
前面的Hello world代码示例中,大家看到了public或class这种单词了吗?
这些单词是让计算机理解你写的代码的命令,所以不能和它们重名哦~
尽量遵守见名知意和驼峰命名规则。
见名知意: 比如我要写一个 计算所有人年龄的平均数,那我应该给它起名 ageAvg (age是年龄的意思,Avg是average平均的意思)
驼峰命名: 相信大家注意到了,为什么上面的 ageAvg 我不用AGEAVG,AgeAvg等命名呢,驼峰命名的规则就是想让 名字像骆驼的背一样,这样更美观,一般来说首字母小写例如age的a,新的单词加入,首字母大写,例如:Avg的A用了大写
变量名不可以与已经声明的变量名重复,例如
int a = 0; int a = 1; //错误示范,请勿学习
如果这样写 程序就会报错,无法编译运行
请分清 声明 和 赋值的区别
int a = 0; a = 1;
a只声明了一次,赋值是无所谓的,所以可以编译运行
一个数据存储空间的表示,其值是不可以发生改变的,所以其实相对安全的
常量名通常大写,不同字符使用下划线分隔 如: AGE**_**AVG
只能被赋值一次,通常定义时即对其初始化
为什么使用常量? 在实际开发和生活中有些值是一开始定义了在后面就不能修改的,如:圆周率
数据类型前面加上 final
final int age=18;
基础补充:
位(bit)是计算机最小存储单位 它只能存0或1,感兴趣可以学一学 计算机科学
下图中我们只需要了解 位(b) – 太(T) 单位即可
数值型
字符型
char(2字节) : 本质上是一个整数, 是字符的ASCII码值.
布尔型
boolean(1bit):boolean类型的值只有true和false两种逻辑值,在编译后会使用1和0来表示,这两个数在内存中按位算,仅需1位(bit)即可存储
什么时候使用布尔
当我们遇到 真 或者 假 是 或者 否
类似于这样两种情况的时候可以使用boolean类型的值
比如软件的关闭提示, 你是否真的退出软件呢?
String(值越长,占的空间越大): 在java中 首字母的S必须大写,String可以存任何值,值需要用””两个引号圈起来
String name = "赵同学,_Helloworld,.!@#$%";
补充:
赋值符号: =
将右边的值赋给左边的变量,示例可以看上面引用数据类型介绍
int age=18+3;
那么age的值就是21, /就是除法,%就是模mod运算(你暂时理解成求余数的运算)
关于模运算,你想深入研究的话我给你准备了两个资料 简书 百度百科
++,与–
基础补充:System.out.println(); 是打印输出其括号里的值到控制台
public static void main(String[] args) { int i = 0; System.out.println(i++);//1 System.out.println(i);//2 int j = 0; System.out.println(++j);//3 }
1处会输出0 , 2处会输出 1 三处会输出 1
你发现规律了吗?
++就是+1, –自然是-1
如果++或–放在变量(上文中是i或j)后面,那么就会将下一次出现此变量时+1,就比如上文中的1处 i++出现的时候,它还是0,当它下一次出现的时候(2处),进行+1 就变成了 1
如果++或–放在变量(上文中是i或j)前面,那么它就会**立刻+**1 所以3处的j就立刻变成了 1
看不懂或者懵了别害怕,这里请上机练习一下,自己动手试一下,你就明白其中的奥妙啦!
基础补充: 关系运算符的值是 boolean(布尔)类型的, true代表真的 false代表假的
上文中提到过 两个引号 “” 包起来的数据 是 String类型的值,所以它输出了 true
这里请上机练习,实际操作一下!
思考时间:结合你所学的知识,你看懂了吗? 上机练习一下吧
又称三目运算符
boolean i = false; 1>2? i=true : i=false
请问布尔型变量 i 的值是什么?
结果肯定是 false,因为1小于2,程序会执行 冒号(:)后面的表达式,请根据语法图片仔细思考
如果 1>2 换成 1<2 呢?
上面讲到 int只能存整数,变量赋值(=)时必须对应数据类型, 那假如我想把int类型变量赋值给double呢? 那double赋值给int呢?数据类型之间的转换肯定是有规律的!
自动类型转换
int a = 1; double b = a;
上面的代码 a 是int类型的,为什么可以直接赋值给 double呢?
其实变量自动转换了,小的值可以存到大的空间里面,如何理解这句话?
拿生活举例,你有一个200ml的小杯子和一个500ml的大杯子,200ml的小杯子装满了水,你想倒入500ml的大杯子里,显然没有任何问题.
如果反过来呢? 我500ml的杯子装满了水 可以倒入 200ml的小杯子里吗?显而易见,会溢出水
结论:自动转换存在优先级,小的数据类型可以自动转换为大的数据类型,优先级如下
String>double>float>long>int>(short,byte,char)
强制类型转换
double a = 1.2; int b = (int)a;//1
数值型的数据可以互相转换,我们都知道double比Int大,所以就需要**在变量a前面加个(int)**告诉程序 我就是要转,非要转.
int a=(int)10.6; System.out.println(a); //10
结果为10,因为int只能存整数, java可没有什么四舍五入,强转会丢失数据精度,尤其在财务等方面慎用。
import java.util.Scanner; //或者 import java.util.*; public class test { public static void main(String[] args){ Scanner input = new Scanner(System.in); int i = input.nextInt();//1 System.out.println(i);//2 } }
第5行的 input 是变量,可以自定义,符号上面讲的命名规范即可.
当程序运行到 1处 后,会暂停等待你输入一个值(只能输数字),输入后 会用值通过 “=”赋值运算符赋值给变量 i , 然后 2处 将i的值 (你输入的) 打印出来
但是这个程序输入 字母或者符号就会 Boom 奔溃掉,为什么呢?
nextInt()大家观察一下,next后面的int, next后面的值决定了它可以输入什么类型的值例如 nextDouble() 你肯定也发现了 第二个字母首字母要大写哟~
我为你准备了更多资料 深入学习
小惠: 嗨,我们晚上去吃火锅吧
小赵:我现在牙还在疼,如果到晚上的时候不疼了我们就一起去
if (条件) { 代码 }
我们可以这么理解上面的使用场景
**if **(小赵的牙晚上不疼了) { 和小惠一起去吃火锅 }
如果**() 半圆括号**中的条件符合 就执行 { }花括号里的代码,否则什么也不会发生
if(小赵的java成绩>90分){ 获得手表作为奖励 }
套用这个格式,把代码中的中文替换成 Java代码表达式即可
double score=90.0; if(score>90){ System.out.println("很棒,奖励一个手表"); } System.out.println("程序结束");
你认为程序会输出什么呢?
注意: score大于90吗?
思考时间:我只添加一个等于号(=),就可以输入奖励手表,你想多怎么做了吗?
仔细思考,看不懂多看几遍,别放弃,加油!
使用场景
小惠: 嗨,我们晚上去吃火锅吧
小赵:听说今天下暴雨,而且我现在牙还在疼,如果到晚上不下雨且我的牙不疼了我们就一起去
代码实现
if (晚上不下雨 && 小赵的牙晚上不疼了) { 和小惠一起去吃火锅 }
语法
代码与之前的有什么不同呢? 是不是多了一个 && 呀, 你还记得吗,我们在第二章变量数据类型与运算符-四.运算符-4.逻辑运算符 讲过它,翻回去看看吧~
这样的写法就将两个条件表达式代入判断, &&的作用就是 同时,它的名字是 与,只有当左边和右边**同时符合(同时为true)的时候,才执行花括号{}**里的代码
逻辑运算符肯定不止这一个,||或,这些就要看你自己探索啦~
使用场景
在上面案例讲if的时候只讲过牙疼不能吃骨头,没讲牙不疼吃什么,这里我们来解决
流程图
语法
如果小赵Java考试成绩大于90分,就奖励他一个手表,否则就罚他抄写代码
if (小赵Java成绩> 90 ) { 奖励一个手表; }else { 惩罚抄写代码; }
程序只会执行其中一个,因为不可能存在成绩又大于90又小于90的情况
如果小赵考了88分,你能想到结果吗?
多重else-if
使用场景
如果小赵Java考试成绩大于90分,就奖励他一个手表,否则就看看及格大于60分了,如果及格了就什么鼓励他一下,否则就罚他抄写代码
流程图
语法
if ( 成绩>=80) { 奖励一个手表 } else if (成绩>=60) { 鼓励小赵好好学习 } else { 罚他抄写代码 }
这里你需要注意的是 程序只会执行其中一个, 如果成绩大于等于 80分 这个if-else结构就中断了,如果不符合第一个条件,就说明成绩没有大于等于80分,判断第二个条件,如果成绩及格了,就执行它的代码然后结束程序,否则执行最后一个条件,因为成绩又不大于80,又不大于60,只能说明不及格了
思考时间:
1.程序会输出什么呢?
2.if里面的条件顺序是否可以随意更换? (重点)
double score=77; if(score>=80){ System.out.println("良好"); }else if(score>=60){ System.out.println("中等"); }else{ System.out.println("差"); }
使用场景
小赵:今晚我们去看电影吧?
小惠:好啊小赵:那我们看 当幸福来敲门 吧?
小惠:好
流程图
这张图看不懂就不看了,不重要
语法
if(小惠看不看电影) { //如果看,就判断下一个条件 if(小惠看不看 当幸福来敲门) { 晚上和小惠一起去看 当幸福来敲门 } else { 晚上和小惠一起去看其他的电影 } } else { 改天再约 }
你想通了吗?
使用场景
小赵参加计算机编程大赛
如果获得第一名,将参加麻省理工大学组织的1个月夏令营
如果获得第二名,将奖励惠普笔记本电脑一部
如果获得第三名,将奖励移动硬盘一个
否则,不给任何奖励
if结构实现办法
int mingCi=2; if(mingCi==1){ System.out.println("参加夏令营活动"); }else if(mingCi==2){ System.out.println("奖励笔记本一部"); }else if(mingCi==3){ System.out.println("奖励移动硬盘一个"); }else{ System.out.println("没有奖励"); }
是不是感觉非常繁琐与啰嗦呀
switch结构实现办法
int mingCi=2; switch(mingCi){ case 1: System.out.println("参加夏令营活动"); break; case 2: System.out.println("奖励笔记本一部"); break; case 3: System.out.println("奖励移动硬盘一个"); break; default: System.out.println("没有奖励"); break; } System.out.println("程序结束");
程序会获取 switch() 括号中的值,一个个向下比较,看看case后面跟的值是否与我的括号里的值相同,相同就执行符号要求的case.
这时候括号里填的就是数据,可不是条件表达式了哦~
switch有以下规定
- 常量名不可重复 : 就是比如 case 1有了,你不能再后面再写个重复的case 1
- 如果case后面没有有break结束语,程序不会像if那样中断,会接着执行,这里复制示例代码到IDE(写代码软件)里测试一下就明白了
- default,就是默认值,如果其他的case都不等于switch括号里的值就会执行它里面的代码,default可有可无,而且可以在任何位置
- switch后面的表达式类型只能是 int byte short char 枚举 String1
switch和多重if的对比
相同点: 都是用来处理多分支条件的结构
不同点:
switch结构:
只能处理等值条件判断的情况多重if选择结构:
没有switch选择结构的限制,适合更复杂的逻辑判断
到目前为止我们学习过五种选择结构:
基本if选择结构: 处理单一或者组合条件的情况
if-else选择结构:处理简单的条件分支情况
多重if选择结构:处理复杂的条件分支情况
嵌套if选择结构:用于较为复杂的流程控制switch:选择结构
多重分支并且条件判断是等值判断的情况。
学习不是纸上谈兵,实践出真知,给大家一句我特别喜欢的话
师傅领进门,修行看个人
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算