狂神说Java基础篇笔记(01)

idea项目管理

  1. 创建empty project(空项目)
    01

  2. 新建模块(Module)
    02

  3. 选择java–>next
    在这里插入图片描述

  4. 取名(尽量不要是中文)

    在这里插入图片描述

  5. 创建成功(Hello是后续创建的类)
    在这里插入图片描述

  6. 点击Project Structure(file中也有)设置sdk

在这里插入图片描述

在project中设置,jdk版本和语言都为8
在这里插入图片描述

idea注释 样式修改

  1. 点击设置
    在这里插入图片描述

  2. 选择“编辑”–>“颜色模板样式”–>“Java”

在这里插入图片描述

  1. 选择“注释Comments(Annotation是注解)” --> “行注释Line comment” --> 选择”加粗/斜体“ --> 选择颜色 -->点击”Inherit values from“锁定
    在这里插入图片描述
    块注释block comment /* */

    行注释line comment //

1. 注释、标识符、关键字、修饰符

注释

单行://balabala

多行:/* */

文档注释:/**

​ *

​ *

​ */

百度:有趣的注释

/***
 *                    _ooOoo_
 *                   o8888888o
 *                   88" . "88
 *                   (| -_- |)
 *                    O\ = /O
 *                ____/`---'\____
 *              .   ' \\| |// `.
 *               / \\||| : |||// \
 *             / _||||| -:- |||||- \
 *               | | \\\ - /// | |
 *             | \_| ''\---/'' | |
 *              \ .-\__ `-` ___/-. /
 *           ___`. .' /--.--\ `. . __
 *        ."" '< `.___\_<|>_/___.' >'"".
 *       | | : `- \`.;`\ _ /`;.`/ - ` : | |
 *         \ \ `-. \_ __\ /__ _/ .-` / /
 * ======`-.____`-.___\_____/___.-`____.-'======
 *                    `=---='
 *
 * .............................................
 *          佛祖保佑             永无BUG
 */

/***
 * _ooOoo_
 * o8888888o
 * 88" . "88
 * (| -_- |)
 *  O\ = /O
 * ___/`---'\____
 * .   ' \\| |// `.
 * / \\||| : |||// \
 * / _||||| -:- |||||- \
 * | | \\\ - /// | |
 * | \_| ''\---/'' | |
 * \ .-\__ `-` ___/-. /
 * ___`. .' /--.--\ `. . __
 * ."" '< `.___\_<|>_/___.' >'"".
 * | | : `- \`.;`\ _ /`;.`/ - ` : | |
 * \ \ `-. \_ __\ /__ _/ .-` / /
 * ======`-.____`-.___\_____/___.-`____.-'======
 * `=---='
 *          .............................................
 *           佛曰:bug泛滥,我已瘫痪!
 */

/***
 *      ┌─┐       ┌─┐ + +
 *   ┌──┘ ┴───────┘ ┴──┐++
 *   │                 │
 *   │       ───       │++ + + +
 *   ███████───███████ │+
 *   │                 │+
 *   │       ─┴─       │
 *   │                 │
 *   └───┐         ┌───┘
 *       │         │
 *       │         │   + +
 *       │         │
 *       │         └──────────────┐
 *       │                        │
 *       │                        ├─┐
 *       │                        ┌─┘
 *       │                        │
 *       └─┐  ┐  ┌───────┬──┐  ┌──┘  + + + +
 *         │ ─┤ ─┤       │ ─┤ ─┤
 *         └──┴──┘       └──┴──┘  + + + +
 *                神兽保佑
 *               代码无BUG!
 */

/***
 * http://www.flvcd.com/
 *  .--,       .--,
 * ( (  \.---./  ) )
 *  '.__/o   o\__.'
 *     {=  ^  =}
 *      >  -  <
 *     /       \
 *    //       \\
 *   //|   .   |\\
 *   "'\       /'"_.-~^`'-.
 *      \  _  /--'         `
 *    ___)( )(___
 *   (((__) (__)))    高山仰止,景行行止.虽不能至,心向往之。
 */

/***
 *                 .-~~~~~~~~~-._       _.-~~~~~~~~~-.
 *             __.'              ~.   .~              `.__
 *           .'//                  \./                  \\`.
 *         .'//                     |                     \\`.
 *       .'// .-~"""""""~~~~-._     |     _,-~~~~"""""""~-. \\`.
 *     .'//.-"                 `-.  |  .-'                 "-.\\`.
 *   .'//______.============-..   \ | /   ..-============.______\\`.
 * .'______________________________\|/______________________________`.
 *
 */

标识符和关键字

  • 关键字
    在这里插入图片描述

  • 标识符:只能由字母,数字,_(下划线) ,$ 组成

    • 能以数字开头

    • 能有非法字符

    • 可以用汉字命名,但不提倡,最好也不要用中文拼音

命名规则

尽量见名知意

尽量见名知意

尽量见名知意

  1. 包名:全小写

    包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词,最好用域名反过来写,不会冲突。如com.cnblogs.sun99bk.myutil等。

  2. 类名、接口名:每个单词的首字母大写 如:ClassName*(驼峰原则)*

  3. 变量名、方法名(参数名、对象名):第一个单词小写,后面单词的首字母大写,如:setName(), dbClassName。第一个单词小写和驼峰原则

  4. 常量名:所有字母都大写 如:MAX_COUNT*(大写字母和下划线)*

修饰符

同一个类同一个包不同包的子类不同包的非子类
Private
Default
Protected
Public

2. 数据类型

  • 强类型语言–>java
    • 先定义,后使用
    • 安全性高
    • 速度慢
  • 弱类型语言–>vb,js

基本类型(Primitive type)

数值类型

  • 整数类型

    • byte(占1个字节)范围:-128~127

      • 字节整型
    • short(占2个字节)范围:-32768~32767

      • 短整型
    • int(占4个字节)范围:-2147483648~2147483647

      • 整型
    • long(占8个字节)范围:

      -9223372036854775808~9223372036854775807

      • 长整型
      • 4000025L/787955l(数字后面加L)
  • 浮点类型

    • float占4个字节
      • 单精度浮点型
      • 123.123f/165.231F(数字后面加F)
    • double占8个字节
      • 双精度浮点型
  • 字符类型

    • char占2个字节
  • String是一个类,不是一个数据类型:可定义字符串

boolean类型:占1位,其值只有true和false两个

  • boolean a=false;
  • boolean a=true;
字节

1B=8bit(1字节=8位)

11001100是一个八位得二进制数

字符

字母、数字、字和符号

一些单位换算

1024B=1kb

1024kb=1M(兆)

1024M=1G

1024G=1TB

引用类型(reference type)

  • 接口
  • 数组

拓展

  1. 整数

    • 二进制(0b开头)

    • 十进制(平时使用的数字)

    • 八进制(0开头)

    • 十六进制 (0x开头)

    都是以十进制数输出

public static void main(String[] args) {
        int a=10;
        int b=010;
        int c=0x10;
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
    }
//输出10 8 16
  1. 浮点数

    public static void main(String[] args) {
           float a=0.1f;
           double b=1.0/10;
            System.out.println(a);
            System.out.println(b);
            System.out.println(a==b);
        }
    //输出0.1 0.1 false-->精度丢失,最终判断为不相等
    
    //======================================================
    //浮点数的拓展? 银行业务怎么表示? 钱
    //BigDecimal 数学工具类
    //======================================================
    public static void main(String[] args) {
            float d1=1231564654489f;
            float d2=d1+1;
        //比较两个数是否相等,相等数出true,不相等输出false
            System.out.println(d1==d2);//发现输出了true
        }
    //float 有限、离散、舍入误差、大约、接近但不等于
    //最好完全避免使用浮点数进行比较
    //最好完全避免使用浮点数进行比较
    //最好完全避免使用浮点数进行比较
    
  2. 字符

    public static void main(String[] args) {
            char c1='a';
            char c2='中';
            System.out.println(c1);
            System.out.println((int)c1);//强制转换
            System.out.println(c2);
            System.out.println((int)c2);//强制转换 
        }
    	//编码 Unicode 表  占2字节 最多可表示65536(2^16)个字符
    	
    //所有字符的本质还是数字
    

    Unicode 编码:

    • 范围U0000~UFFFF

    • \u0061 (反斜杠\表示转义,把\后面的字符意思进行转化)

      • 输出"a"

        • 'a’的数值对应的为Unicode字符集中’a’字符的编码值

          相当于 97 对应 u0061

        • 在Java中 “\u0061” “a” “97” 三者是等价的

    转义字符:

    \t 制表符(相当于隔开一个Tab的长度)

    \n 换行

    public static void main(String[] args) {
           String a=new String("don't");
           String b=new String("don't");
            System.out.println(a==b);//输出false
           String c="don't";
           String d="don't";
            System.out.println(c==d);//输出true
        }
    
  3. 布尔值

     public static void main(String[] args) {
           boolean a=true;
           if(a==true){}
           if(a){}//两句等效,默认判断括号里的内容为真
        }
    

3. 类型转换

低 byte,short,char—>int—>long—>float—>double 高

强制转换:高—>低 使用方法:(类型)变量名

自动转换:低—>高

  1. 不能对布尔值进行转换(只占一位)

  2. 不能把对象类型转换为不相干的东西

  3. 在高容量转换到低容量的时候,强制转换

  4. 转换的时候可能存在内存溢出

    public static void main(String[] args){
        int a=128;
        System.out.println((byte)a);//内存溢出,输出-128
    }
    

    或精度异常(float、double转int,直接舍弃小数点后的数)

JDK7新特性:数字之间可以用下划线分割,且不会被输出。

public static void main(String[] args){
    int money=10_0000_0000;//方便数0
    System.out.println(money);//输出1000000000
	System.out.println("====================================");
        int a=10_0000_0000,b=20;
        long c=a*b;
        System.out.println(c); //数据溢出:-1474836480
    //原因:*优先级大于=(赋值),所以先算a*b,输出一个int型的数字,但是由于200_0000_0000超出了int类型的范围,溢出,输出了一个负数,并且直接讲这个负数赋值给了long型的变量c。
    //解决:先将某个变量强转,再计算,再赋值
    //long c=((long)a)*b
}

4. 变量、常量

  1. 变量
  • Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域

    • 不建议一行定义多个变量

    • 作用域:

      • 类变量

        static修饰的变量

        public class Demo1 {
            static double salary=2500;//不实例化可直接使用
            public static void main(String[] args) {
                System.out.println(salary);
            }
        }
        
      • 实例变量

        从属于对象
        再方法的外面,类的里面

        public class Demo1 {
            //不进行初始化,会输出默认值
            // 0 0.0
            //布尔值:默认false
            //除了基本类型,其余都是null String是null
            String name;
            char id;
            int age;
            public static void main(String[] args) {
                //变量类型 变量名= new Demo1();
                Demo1 demo1 = new Demo1();
                //快捷键:new Demo1() Alt+回车 再回车
                System.out.println(demo1.name);//输出null
                System.out.println(demo1.id);//没有输出
                //猜想:因为char是用来装一个字符,没有放东西进去,所以不输出任何东西?
                System.out.println(demo1.age);//输出0
                //快捷键:demo1.age.sout
            }
        }
        
      • 局部变量

        定义在所有方法的{}里面

        public class Demo1 {
            //main方法(主方法)
            public static void main(String[] args) {
                //局部变量:必须声明和初始化值
        		//不进行初始化不会自动赋值,会导致程序无法通过
                int a=0;
                System.out.println(a);
            }
            //其他方法
            public  void add(){
                System.out.println(a);//没有声明a不能输出
            }
        }
        

        在这里插入图片描述

  1. 常量(Constant)[全大写]

    • 常量——特殊变量——初始化(initialize)之后不能再改变

      • final 常量名=值;
      • final double PI=3.14;
      public class Demo1 {
          //修饰符,不存在先后顺序,再加个public或者private都是一样的
          static final double PI=3.1415;
          //final static double PI=3.1415;//与上一行等价
          public static void main(String[] args) {
              System.out.println(PI);
          }
      }
      

5. 运算符

Java语言支持如下运算符

  • 算术运算符:+ ,-,*,/,%,++,–(自增自减为一元运算符)

    short b=12;
    byte c=7;
    System.out.println((String)(b+c));
    //这样移动鼠标可以查看b+c转换成了什么类型
    //报错:cannot cast 'int' to 'java.lang.String' 所以b+c自动升级为了int
    
  • 赋值运算符:=

  • 关系运算符:>,<,>=,<=,==,!=,instanceof

  • 逻辑运算符:&&,||,!(先判断前面的,如果符合判断条件就短路,后面的不执行)

  • 位运算符:&,|,^,~,>>,<<,>>>(了解!!!)

    //每一个位之间进行比较
    A=0011 1100;
    B=0000 1101;
    &A&B 0000 1100 //两个都是1则1 否则0
    |A|B 0011 1101//两个都是0则0 否则1 
    ^亦或 A^B 0011 0001//相同为0 不同为1 
    ~取反 ~A 1100 0011//1变0 0变1
    
    0000 0000 0
    0000 0001 1
    0000 0010 2
    0000 0011 3
    0000 0100 4
    0000 1000 8
    0001 0000 161整体往某个方向移动? 
    2*8=16    2*2*2*2
    >>右移 /2
    <<左移 *2
    2<<3 2左移3-->2 *2*2*2=16
    
    • 偷懒:

      • 条件运算符/三目运算:? :

        int a=55;
        String type = a>60?"及格":"不及格"
        //判断a是否>60,是则输出“及格”,否则输出“不及格”
        
      • 扩展赋值运算符:+=,–,*=,/=

        a+=7;

        a=a+7;

字符串连接符

输出的所有内容,只要有一个+的一边为String类型,那么其他的将会进行拼接,不会相加。但String必须在运算之前。

int a=10,b=5;
        System.out.println(""+a+b);//输出105 “”后全拼接
        System.out.println(a+b+"");//输出15 先算a+b 再拼接

运算符优先级

++、–、!》算术运算符》关系运算符》&&》||》?:》赋值运算符
—————》%、*、/、+、-》>、<、>=、<=、==、!=》—》—》—》%=、=、+=、-=、/=

(学C语言时整理,Java中未检测(本人))

6. 包机制、JavaDoc

包机制(包的本质就是文件夹)

package 包名;

  • 一般利用公司域名倒置作为包名 如:com.baidu.www
  • 包名全小写
  • 为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。
    • 使用import语句
      • import 包名.*;
      • //* 通配符 导入该包下所有的类
      • //也可以.后指定类名,导入单个类

JavaDoc

  • javadoc命令是用来生成自己api文档的

参数信息:

  • @author 作者号
  • @version 版本号
  • @since 指明需要最早使用的jdk版本
  • @param 参数名
  • @return 返回值情况
  • @throws 异常抛出情况
package com.tang;
/**
 *
 * @author TangYingYi
 * @version 1.0
 * @since 1.8
 */
public class Hello {
    String name;
    public static void main(String[] args) {
        String name="汤颖仪";
        System.out.println(name+":Hello World!");
        byte num1=127;//整型
        int  num2=26666;//整型
        short num=2000;//短整型
        long a=127L;//长整型
        char b='汤';//字符型
        float c=856.1f;//浮点型
        double d=984.12;//双精度浮点型
    }
    /**
     * 
     * @param name
     * @return
     * @throws Exception
     */
    public String test(String name) throws Exception{
        return name;
    }
}

生成javadoc文档

使用cmd
/*
在cmd中输入命令:
C:\Java\idea\code\JavaSE\基础语法\src\com\tang>
javadoc -encoding utf-8 -charset utf-8 Hello.java
encoding编码 utf-8 charset字符集编码 utf-8//统一字符集,不乱码
//javadoc 参数 需要生成文档的Java文件名
*/

在这里插入图片描述

使用idea

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值