一、jdk的安装与配置

1、安装建议C盘
2、配置环境变量
如果去企业,使用idea,其实不用配置。
配置环境变量的意思:就是黑窗口不管在哪个路径下,输入java、javac这些命令都识别。
找到我们的jdk安装路径复制:
C:\Program Files\Java\jdk1.8.0_144
系统变量中,先声明一个变量
image.png
配置path路径
%JAVA_HOME%\bin;
一般在黑窗口中输入一个命令,这个时候系统会从path路径下从上往下查找,找到之后立即执行。

二、idea的安装

idea属于IDE工具.
java 的IDE工具 eclipse、myeclipse、idea、netbeas
idea的破解教程:
第一步需要注册idea账户,登录进去。
image.png
然后在打开的文件中,添加一句话:
-javaagent:E:\ja-netfilter-v2.2.2\ja-netfilter.jar
当然前提条件是,需要将这个破解包解压到一个非中文路径下,然后复制路径添加到上面即可。
重启idea.
image.png
image.png

三、idea的基本使用

1、创建项目,并绑定jdk

image.png
image.png
image.png

2、编写代码的规定

项目名一般首字母大写Day01
先有包package,再写类,包名:一般都是公司的网址倒着写。
www.baidu.com com.baidu.xxxxx
包名都是小写的。
类的名字Class才用首字母大写的驼峰命名。张三 zhangSan.

3、一些快捷方式

1、 main 敲回车
2、 sout 敲回车

4、设置

1)设置类上的注释模板
image.png

  1. /**
  2. * @Author ${USER}
  3. * @Description TODO
  4. * @Date ${DATE} ${TIME}
  5. * @Version 1.0
  6. */

2、设置字体
字体设置偶数比较好。
image.png
运行:
image.png
3、设置背景图
image.png

四、java基础

1、标识符:作用就是起名字。

1. 由字符(含英、中、日、俄等)、数字、下划线(_)和美元符号($ 音:dollar)组成。
2. 不能以数字作为开头。
3. 区分大小写。
4. 长度无限制。(一般不要超过15个字符)
5. 不能与系统关键字或者保留字重名。

image.png

2、变量、常量、局部变量

在项目中,一般常量比较多,单独创建一个类存储常量。
全局变量有默认值,所以不用初始化也不报错,局部变量必须给定初始值。
byte,short,int,long 默认值都是0.
boolean 默认是false
char 类型默认值是null
String 默认值是null.
double,float 默认值是0.0
double 一般不加d,float 一般都会加上f.

3、数据类型

八大基本数据类型需要掌握,String是一个类,只要是类就是引用数据类型,跟你定义Student 类差不多。
byte 占用一个字节,是8位bit。
十进制的8 对应的二进制的 00001000
8 一直除以2 ,直到商为0为止,将每一个的余数从下往上拼接即可。
byte取值范围 256个数字 -128到 127 ,-128二进制 记住:10000000

需要记住的点:8大基本数据类型,以及长度。

4、字符集

常用的字符集就是utf-8 ,偶尔也用gbk
任何乱码问题归根结底都是字符集不照应的问题。

为了满足各国的需求,出现了很多的字符集
中国的    GBK   GB2312
美国的    ASCII--已经变成了国际标准    1个字节
欧洲的    ISO8859-1
日本的     UTF系统,常用的UTF-8(支持的整体语言非常好,所以慢慢的大家都在用)
Unicode   世界统一编码,内部编码,java默认使用的编码.   内部字符---2个字节

A 与 a 之间相差32 ,大小写转换可以通过+- 32 来完成。

5、转义字符

    char c3 = '\n';        // 换行符<br />        char c4 = '\r';        // 回车符<br />        char c5 = '\t';        // 制表符  指键盘中的tab 键

6、运算符

练习:在控制台输入一个三位数的数字,取出各个位上的数字

// 在控制台输入一个三位数的数字,取出各个位上的数字
    public static void main(String[] args) {
        // 在类后面,输入.var 敲击回车,自动生成该类的变量
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个三位数:");
        int num = scanner.nextInt();
        int ge = num % 10; // 103  => 3
        int shi = num / 10 % 10; // 103 => 10 => 0
        int bai = num / 100;  // 1
        System.out.println("个位数是:"+ge + ",十位数是:" + shi +",百位数是:"+ bai);

        // 整数除以整数,结果还是整数
        System.out.println(12/10);
    }

练习:获取三个成绩,求成绩之和和平均成绩

Scanner scanner = new Scanner(System.in);
        System.out.println("请输入java成绩"); //  .sout 敲回车就是输出某个内容
        int javaScore = scanner.nextInt();
        System.out.println("请输入SQL成绩"); //  .sout 敲回车就是输出某个内容
        int sqlScore = scanner.nextInt();
        System.out.println("请输入linux成绩"); //  .sout 敲回车就是输出某个内容
        int linuxScore = scanner.nextInt();
        // Math.abs  求某个数的绝对值
        System.out.println("sql 和 java 差 "+( Math.abs(sqlScore-javaScore)));
        System.out.println("三科成绩的平均值:"+ (javaScore+sqlScore+linuxScore)/3.0f);

int类型除以int类型,等于int类型。
String 类型 + 任意类型 都是 String类型。
int类型和浮点型(带小数点的类型)进行相处运算,都是浮点型。

补充一下:Scanner的用法-从控制台获取数据赋值给变量。
如果是整数类型 nextInt() 方法获取
如果是字符串类型 next() 获取一个字符串
如果获取一行数据 nextLine() 获取一行数据

Scanner scanner = new Scanner(System.in);
        System.out.println("请输入几个字符串,以空格隔开:");
        // ctrl +  d 可以快速复制一行
        System.out.println("控制台获取的第一个字符串是:"+scanner.next());
        System.out.println("控制台获取的第二个字符串是:"+scanner.next());
        System.out.println("控制台获取的第三个字符串是:"+scanner.next());
// 从控制台获取数据
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一段文字:");
        System.out.println("获取一行数据"+scanner.nextLine());

通过亦或运算交换两个数值:

int a = 3, b = 5;
       /* int c = a;
        a = b;
        b = c;*/
        /** 相同为假, 不同为真
         *   a =   0011
         *   b =   0101
         *   a =   0110
         *   b =   0011  = 3
         *   a =   0101  = 5
         */
         a = a ^ b;
         b = a ^ b;
         a = a ^ b;
        System.out.println("a="+ a + ",b =" + b);

        System.out.println(8 >> 1);

        // 三目运算  其实 就是if else 的  语法糖
        // 前面是条件,条件成立,运行冒号前面的,不成立,执行冒号后面的。
        System.out.println("a是否大于b呢?"+ (a>b ? "是的" : "否"  ));

&、| 与 && || 的区别

int a = 3, b = 5;
        if(a>4 & b++ < 4){
        //if(a>4 && b++ < 4){
            System.out.println("进入了if");
        }else{
            System.out.println("没有进入if");
        }
        System.out.println("b="+b); // 6

7、流程控制(if -else )

if语句有四种使用形式:

- if(条件){…}
- if(条件){…}else{…}
- if(条件){…}else if(条件){…}else{…}
- if(条件){ if(条件){...}  } else {...}

if-else 案例

int score = 59;
        if(score >= 60){
            System.out.println("及格了,恭喜");
        }else{
            if(score >= 55){
                System.out.println("得罪老师了,需要深夜送礼......");
                //return; // 此处也可以,只是有点怪。

            }else {
                System.out.println("不及格,下次补考");
            }

        }

switch: 可以通过if-else替换掉。
一定要记得添加break,否则出现case穿透问题。

Scanner scanner = new Scanner(System.in);
        System.out.println("请选择您想减肥的季节:");
        String season = scanner.next();

        switch (season) {
            case "春" :
                System.out.println("春天有点困,先不减了");
                break;
            case "夏" :
                System.out.println("夏天不太适合,夜跑有烧烤...");
                break;
            case "秋" :
                System.out.println("秋天有点伐木累");
                break;
            case "冬":
                System.out.println("你没听说过冬眠吗?");
                break;
            default:
                System.out.println("减肥......");
        }

案例:求每一年的各个月份的天数:

package com.qfedu.day01;

import java.util.Scanner;

/**
 * @Author laoyan
 * @Description TODO
 * @Date 2022/3/1 17:21
 * @Version 1.0
 */
public class Demo13 {
    public static void main(String[] args) {
        /**
         * 1、从控制台获取月份
         * 2、编写一个switch 语法
         * 3、判断二月是否是闰年
         * 4、打印月份
         */
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入需要查阅天数的年份:");
        int year = scanner.nextInt();
        System.out.println("输入需要查阅天数的月份:");
        int month = scanner.nextInt();
        // 1 3 5 7 8 10 12  31
        // 4,6,9,11   30
        //  2  28 or 29
        switch (month){
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                System.out.println("31天");
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                System.out.println("30天");
                break;
            case 2:
                // 闰年   能被4整除 不能被100 整除  或者能被400整除的年称之为闰年
                if((year%4==0 && year %100 !=0)  || year%400==0 ){
                    System.out.println("此年为闰年,2月是29天");
                }else{
                    System.out.println("今年二月是28天");
                }


        }

    }
}