大数据笔记5—java基础篇1(常,变量及数据 运算符if语句)


苟有恒,何必三更眠五更起;
最无益,莫过一日曝十日寒。

1、JAVA

java分为 javase(学习主要是为了以后学习大数据的时候后面的很多框架是由java开发的)

​ javame(已经淘汰)

​ javaee(web开发:网站+后台)

java现在属于orac公司

java 的结构

java语言的强大之处就是只需要编译一次就可以在各个平台上运行。但是jvm是不能跨平台的

开发java程序需要三个步骤:编写代码,编译代码,运行代码

大白话: 自己在txt文本中写.java文件----然后在cmd中(javac 类名.java)进行编译----(编译成.class文件)-----最后展示在cmd中

.java 文件属于【源文件】,是无法被JVM所识别执行的(利用jdk翻译编码)编译之后再jvm中运行

JRE、JDK1、JVM 的关系

在这里插入图片描述

JRE : JRE是 Java Runtime Environment 缩写,指Java运行环境,包含 JVM 虚拟机及 Java 核心类库。
类 :java 文件在代码中的集合体现
核心类库:存放多个 java 文件的仓库
重点理解:我们自己在编写代码的过程中,需要用到 java 已经写好的这些 java 文件。

JRE、JDK、JVM 的作用

1、编写代码的过程中,需要使用 JRE 中 Java 已经写好的代码。
2、编译代码的过程中,需要使用 JDK 中的翻译工具。
3、运行代码的过程中,需要使用 JDK 中的运行工具。
4、代码需要运行在 JVM 当中。

2、配置环境变量

www.oracle.com www.oracle.cn可以直接在网上下载jdk(放在盘中的java目录下)

本人是用的1.6 贴上本人的jdk和jre

在我的电脑–系统属性-高级–环境变量(系统变量)中添加

JAVA_HOME 值就是添加上你下载的java的绝对路径

Path %JAVA_HOME%\bin; (这个直接复制就OK,相对路径的bin目录)

CLASSPATH 暂时可以忽略

添加完成之后再按下win+R 运行—输入cmd中 输入java以及javac即可查看是否安装完成

java -version可以查看版本号

关键字

关键字是java赋予了特殊含义的单词
关键字的特点全部小写
public	                           --限定类名与文件名保持一致
class                              --定义一个类
HelloWorld	                       --类名
main:主方法                         --JVM只会调用main方法 我们java程序的入口
System.out.println("HelloWorld");  --输出语句

3、编写HelloWorld案例

创建txt文本 —把文本改成.java后缀,忽略警告.(在文件夹中查看选项中可以打开文件扩展名)

1.编写程序

 public class HelloWorld{
     public static void main(String[] args){
   System.out.println("HelloWorld");
 }
}

2.编译程序

按下win+R 运行—输入cmd中 输入

	javac    HelloWorld.java

3.运行程序

	java     HelloWorld

输入框即显示

HelloWorld

键盘录入(一个小知识点)

大白话:意思就是可以我们可以输入数据

如何使用
1.导包
import java.util.Scanner;
位置:类的上面
2.创建对象
Scnner sc = new Scanner(System.in);
只有sc可以改变的 但是不建议
3.接收数据
int i = sc.nextInt();
只有 i 变量名是可以修改的

4、注释

单行注释
//注释
多行注释
/* 注释 /
文档注释
/
* 注释 */

5.1常量

​ 在代码运行期间 其值不会发生变化的量(数据)
​ 字符串常量
​ 使用双引号引起来的内容 “字符串” “”:空字符串
​ 字符常量
​ 由单引号引起来的单个文字信息 ‘A’ ‘a’ ‘哈’
​ 整数常量
​ 一切整数
​ 小数常量
​ 一切小数
​ 布尔常量
​ 真:true 假:false
​ 空常量
​ null 不能单独打印

5.2变量

变量的作用 使用变量记录一些经常发生变化的数据
变量是什么 内存中的一小块存储区域 这个区域中的值会经常发生变化:变量
变量的定义格式 数据类型 变量名 = 初始化值;
注意事项:
1.变量名不能重名
2.一行上可以定义多个同类型的变量
3.变量在使用之前 必须要有一个初始化值
4.定义float与long的时候有些要求
float类型的初始化值 需要加 F或者f 建议 F
long类型的初始化值 需要加L或者l 建议是L
5.变量的作用范围
变量所在的这对大括号中

5.3标识符

用来给 变量 方法 类取名字的符号
硬性规定:
1.只能由 数字 英文字母 下划线_ 美元符号 $
2.数字不能开头
3.不能使用关键字
4.区分大小写

方法 变量: (小驼峰)
1.如果是一个单词 首字母小写
2.如果是多个单词 第一个单词的首字母小写 后面的单词 首字母大写
类的命名: (大驼峰)
1.如果是一个单词 首字母是大写
2.如果是多个单词 每隔单词首字母大写

5.4数据转换

数据类型比较多 在使用的过程中肯定会涉及到多个类型进行计算
从左到右依次变大
转换顺序:byte–>(short,char)–>int–>long–>float–>douuble

5.4.1隐式转换

小的->大的
小的与大的进行计算的时候,小的会提升为大的 在参与运算
byte short char 参与运算的时候,会自动转换为int类型

5.4.2强制转换

大的->小的
因为大的到小的有可能会产生 精度损失 所以要进行强制转换
格式
小类型 变量名 = (小类型)大类型

小类型 变量名 = (小类型)(计算结果为大类型)
小数转整数的时候只保留整数(并不会四舍五入)

6算数运算符

小学学的+、-、*、/、%都是算数运算符
特殊:
只有整数参与除法运算只会得到商。
想要输出小数,需要在做除法运算时,有一个数为小数即可。

ASCII码表

需要记住三个 0为48,a为97,A为65
字符也参与运算,由于 byte short char 参与运算的时候 会自动提升为 int类型 ,所以:最终结果会得到一个整数

char再参与运算的时候 会在码表中找到对应的数字 来进行计算

字符串参与加法运算
字符串参与加法运算得到的结果 也是一个字符串,还叫作字符串的拼接
1.从左往右执行,有括号先算括号内
2.根据结果 加号两边只要有字符串 结果就是字符串 例如:“得到的” + 3 + 4 要考虑到 “得到的” + 3结果是一个字符串 所以第二个加号两边存在字符串

7.1关系运算符

关系表达式结果是boolean类型 true false
== > >= < <= !=

7.2逻辑运算符

连接 关系表达式的 而关系表达式的结果是boolean类型
& 有false则false
| 有true则true
! 取反 双层否定是肯定
^ 相同fasle 不同true

7.3三元运算符

格式

关系表达式 ? 表达式1:表达式2
eg:int num = a> b? a:b;
执行流程
1.先执行关系表达式
2.如果关系表达式为true 则执行表达式1
3.如果关系表达式为fasle 则执行表达式2
可以使用三云运算符 求最大最小值

7.4分支结构

顺序结构:

从上往下 从左往右的一种默认的执行顺序

分支结构:

if switch for while

7.4.1if循环

if格式一

if(判断条件){ 
 语句体;		
}
 当判断条件为true的时候会执行语句体。

if格式二

if(判断条件){
 语句体1;
}else{
 语句体2;
}
执行流程
			1.先执行判断条件
			2.如果结果是true 执行语句体1 if语句执行结束 再执行其他语句
			3.如果结果是false 执行语句体2  if语句执行结束 再执行其他语句

if格式三

if(判断条件1){
 语句体1;
}else if (判断条件2){
 语句体2;
}
...
else{
 语句体n+1;
}
		执行流程
			1.先执行判断条件1
			2.如果判断条件1位true 执行语句体1  if语句执行结束 再执行其他语句
			3.如果判断条件1位false  执行判断条件2
			4.如果判断条件2为true 执行语句体2  if语句执行结束 再执行其他语句
			5.如果判断条件2位false  执行判断条件n 下面以此类推
			6.最后:如果以上所有的条件全部为false的话 执行语句体n+1

if判断语句例子

需求

提示用户键盘录入一个数据并接收.

判断该数据是奇数还是偶数, 并将结果打印到控制台上.

参考代码

public class IfDemo01 {   
    public static void main(String[] args) {        	
    Scanner sc = new Scanner(System.in);      
    System.out.println("请录入一个整数: ");       
	int num = sc.nextInt();        
	if (num % 2 == 0) {   
      System.out.println(num + "是偶数");       
  	}else {    
      System.out.println(num + "是奇数"); 
  	}    
 	}
}

需求

小明快要期末考试了,小明爸爸对他说,会根据他的考试成绩,送他不同的礼物.

假如你可以控制小明的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出。

礼物标准如下:

– 95~100 山地自行车一辆

– 90~94 游乐场玩一次

– 80~89 变形金刚玩具一个

– 80以下 胖揍一顿

参考代码

import java.util.Scanner; 
public class IfDemo02 {    
    public static void main(String[] args) {    
        Scanner sc = new Scanner(System.in);      
        System.out.println("请录入小明的考试成绩: ");   
        int score = sc.nextInt();       
 if (score >= 95 && score <= 100) {         
     System.out.println("奖励小明: 山地自行车一辆");   
 } else if(score >= 90 && score < 95) {          
     System.out.println("奖励小明: 游乐场玩儿一次");   
 } else if(score >= 80 && score < 90) {          
     System.out.println("奖励小明: 变形金刚玩具一个"); 
 } else if(score >= 0 && score < 80){           
     System.out.println("奖励小明: 男女双混组合拳 + 扫帚棒法");       
 } else {    
     System.out.println("考试成绩录入有误.");        
 }   
         }
}

7.4.2 switch判断语句

switch(表达式) {
    case1: 	
        语句体1;
        break;
    case2:
        语句体2;
        break;
    case3:
        语句体3;
        break;
    ...    //根据需求, 可以写多组case.
    default:	
        语句体n;
        break;
}

​ 5.4、执行流程
​ 1、先计算表达式的值, 然后按照从上往下的顺序依次和每一个case对应的值相匹配
​ 2、如果能匹配成功, 则执行该case对应的语句体, 然后执行break, 至此, 整个switch语句结束
​ 3、如果和所有的case值都不匹配, 则执行default对应的语句体, 然后执行break, 至此, 整个switch语句结束
​ 解释: default语句就类似于if. else语句中的else, 当所有条件都不满足时才会执行

每个case都是平等的 只不过是按照顺序执行

利用switch输出每年的月份对应的季节:

import java.util.Scanner;

public class SwitchDemo01 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请录入一个月份: ");
        int month = sc.nextInt();
        switch (month) {
            case 12:
                System.out.println("冬季");
                break;
            case 1:
                System.out.println("冬季");
                break;
            case 2:
                System.out.println("冬季");
                break;
            case 3:
                System.out.println("春季");
                break;
            case 4:
                System.out.println("春季");
                break;
            case 5:
                System.out.println("春季");
                break;
            case 6:
                System.out.println("夏季");
                break;
            case 7:
                System.out.println("夏季");
                break;
            case 8:
                System.out.println("夏季");
                break;
            case 9:
                System.out.println("秋季");
                break;
            case 10:
                System.out.println("秋季");
                break;
            case 11:
                System.out.println("秋季");
                break;
            default:
                System.out.println("没有这样的日期");
                break;
        }
    }
}

case穿透:

当case之后没有break的时候,会向下直接执行,直到碰到下一个break,会跳出循环(前提是case对应的值和switch相等);

上面的例子优化为:

import java.util.Scanner;

public class SwitchDemo02 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请录入一个月份: ");
        int month = sc.nextInt();
        switch (month) {
            case 12:
            case 1:
            case 2:
                System.out.println("冬季");
                break;
            case 3:
            case 4:
            case 5:
                System.out.println("春季");
                break;
            case 6:
            case 7:
            case 8:
                System.out.println("夏季");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println("秋季");
                break;
            default:
                System.out.println("没有这样的日期");
                break;
        }
    }
}

如此一来,当执行case12的时候,会在12之后穿透到break之前执行语句,如果case之间有值,会一并执行

例如

     case 1:
 			System.out.println("冬季1");
     case 2:
            System.out.println("冬季2");
            break;

这样会执行两个语句 冬季1和冬季2都会输出
如果直接执行case2 只会输出冬季2;
各个情况自行测试
下一篇终于开始进入正题啦 一些基础以及逻辑难点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值