栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java入门与实践(初入职场,工作复习)——Java基础

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java入门与实践(初入职场,工作复习)——Java基础

Java基础

Java基础
  • Java基础
    • Java帝国的诞生
    • Java发展
    • JAVA特性和优势
    • JAVA三大版本
    • JDK JRE JVM
    • Hello Wolrd
    • Java环境运行机制
  • Java基本语法
    • 创建 `IntelliJ IDEA` 项目
    • 编写代码,运行环境
    • 注释
      • 单行注释
      • 多行注释 (快捷键:`选中+Ctrl+/` 注释取消:`选中+Ctrl+/`)
      • 文档注释 (快捷键:` 文档注释 (快捷键:
        //有趣的代码注释
        
        
        标识符与关键字


        Java 所有的组成部分都需要名字。类名,变量名以及方法名都被称为标识符

        标识符注意点
        • 所有的标识符,都应该以字母(A-Z或者a-z) 美元符($)或者下划线()开始
        • 首字母之后 可以可以是字母,(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
        • 不能使用关键字作为变量名或方法名。
        • 标识符是大小写敏感
        • 合法标识符举例:age、$salary、_value_、__1_value
        • 非法标识符举例:123abc、-salary、#abc
        • 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low。
        数据类型 强类型语言
        • 要求变量的使用要 严格符合规定,所有变量都必须 先定义 后才能使用。 因此安全性高,但是速度慢。
        弱类型语言
        • 要求变量的使用符合规定即可,所有变量都必须先定义后才能使用。 因此安全性高,但是速度慢。
        public static void main(){
        		String a = "hello";  //必须按数字类型定义
        		int num = 10;
        		System.out.println(a);
        		System.out.println(num);
        }
        
        Java的数据类型,分为两大类
        • 基本类型:(primitive type)
        • 引用类型:(refreence type)
        public class Demo2{
          //八大基本数据类型  快捷键查看类:command或ctrl + 点击
          //整数
        	int num1 = 10; //最常用
        	byte num2 = 20;
        	short num3 = 30;
        	long num4 = 30L; //long类型要在最后加L
        	
        	//浮点数 (小数)
        	float num5 = 50.1F; //float类型要在数字最后加F
        	double num6 = 3.1415926;
          
          //字符类型
          char name = '中';
          //字符串,String不是关键字,是类
          //String name = "hello"
            
          //boolean 布尔值:是,非
          boolean flag = true;
          boolean flag2 = false;
          
        }
        
        字节
        • 位(bit):是计算机内部数据储存的最小单位 ,11001100是一个 八位 二进制数

        • 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示,

        • 1B(byte,字节) = 8bit(位)

        • 字符:是指计算机中使用的字母,数字,字和符号(例:'a','A','中','国')

        • 1bit 表示1位

        • 1byte表示一个字节 1B = 8b

        • 1024B = 1KB

        • 1024KB = 1MB

        • 1024MB = 1GB

        • 1024GB = 1TB

        拓展
        public class Demo2 {
            public static void main(String[] args){
                //数据拓展 进制 二进制:0b开头  十进制  八进制:0开头  十六进制:0x开头
                int i = 10;
                int i2 = 010;  // 八进制:0开头   逢8进1
                int i3 = 0x10; // 十六进制:0x开头  逢16进1   0~9 A~F
        
                System.out.println(i);
                System.out.println(i2);
                System.out.println(i3);
                System.out.println("===================================");
        
                //==========================================
                //浮点数拓展  央行业务怎么表示
                float f = 0.1f;    //0.1
                double d = 1.0/10; //0.1
                System.out.println(f);
                System.out.println(d);
                System.out.println(f==d);
        
                float f1 = 212121212F;
                float f2 = f1 + 1;
                System.out.println(f1 == f2 );  //结果为:true 相同
        
                //原因:浮点数 float:是有限离散的,有舍入误差,其结果是个大约数,接近但是不等于
                //最好完全避免使用浮点数比较大小!
                //最好完全避免使用浮点数比较大小!
                //最好完全避免使用浮点数比较大小!
                //使用BigDecimal数学工具类进行银行业务
        
                System.out.println("===================================");
                //======================================
                //字符拓展
                char c1 = 'a';
                char c2 = '中';
        
                System.out.println(c1);
                System.out.println((int)c1); //强制转换
                System.out.println(c2);
                System.out.println((int)c2); //强制转换
        
                //所有的字符本质上还是数字
                //编码 Unicode ASCII码:a = 97,A = 65,占2字节 最多表示0~65536个字符   最早的Excel表格只有2的16次方,65536
                char c3 = 'u0061'; //定义一个Unicode编码
                System.out.println(c3); //a
                System.out.println("===================================");
        
                //转义字符
                // t 制表符 tab空格
                // n 换行符
                //......
                System.out.println("HellonWorld");
        
                System.out.println("===================================");
                
                //对象 从内存分析
                String sa = new String("hello world");
                String sb = new String("hello world");
                System.out.println(sa == sb); //内存存储原因:false
                
                String sc = "hello world";
                String sd = "hello world";
                System.out.println(sc == sd);//内存存储:true
        
                System.out.println("===================================");
                
                //布尔值扩展
                boolean flag = true;
                //代码要精简易读 Less is More!
                if(flag == true){};//新手
                if (flag){};//老手
                
            }
        }
        
        类型转换
        • 由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。
        低 -----------------------------------------> 高 (小数优先级大于整数)
        byte,short,char -> int -> long -> float -> double
        
        • 运算中,不同类型的数据转化为同一类型,然后进行运算。
          • 强制类型转换
          • 自动类型转换
        public class Demo3 {
            public static void main(String[] args){
                int i = 128;  
                //强制转换   (类型)变量名   高 -> 低
                byte b = (byte)i; //内存溢出    
                System.out.println(i); // 128
                System.out.println(b); //-128 
                
                //自动转换   低 -> 高
                double d = i
            }
        }
        

        byte范围是:-128~127

        public class Demo3 {
            public static void main(String[] args){
                int i = 128;
                //强制转换 (类型)变量名 高 -> 低
                byte b = (byte)i;  //内存溢出
                System.out.println(i);//128
                System.out.println(b);//-128
        
                //自动转换   低 -> 高
                double d = i;
                System.out.println(i);//128
                System.out.println(d);//128.0
        
                System.out.println("=========================");
                //精度问题
                System.out.println("23.7强制转换int类型:"+(int)23.7);//23
                System.out.println("-45.98f强制转换int类型:"+(int)-45.89f);//-45
        
                System.out.println("=========================");
                char c = 'a';
                int e = c+1; //低到高,自动转换
                System.out.println(e); //98
                System.out.println((char)e);// 转换回char类型,高到低,强制转换 //b
        
                
        
                System.out.println("=========================");
                //操作比较大的数的时候,注意溢出问题
                //JDK7 新特性,数字之间可以使用下划线分割
                int money = 10_0000_0000; // 不会输出下划线 _
                System.out.println(money);//1000000000
        
                int years = 20;
                int total = money*years; //计算的时候溢出了
                System.out.println(total); //-1474836480
        
                double total2 = money*years; //默认是int类型,转换之前已经出现问题了,因此就是把结果转换成long
                System.out.println(total2);
                long total3 = money*((long)years);//先把一个数转换成long
                System.out.println(total3);
                
                //因为long L 和 l 都可以 但是l容易看成1,所以建议都使用L
            }
        }
        
        变量
        • 变量是什么:就是可以变化的量!(代表一个空间,空间里面存储的值是可以变化的。)
        • Java是一种强类型语言,每个变量都必须声明其类型。
        • Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
        type varName  [=value] [{,varName[=value]}];
           // 数据类型 变量名 = 值; 
           //可以使用逗号隔开来声明多个同类型变量(不建议用)。
        
        • 注意事项:
          • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
          • 变量名必须是合法的标识符。
          • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
        public class Demo4 {
            
            public static void main(String[] args){
                 //int  a,b,c; //不建议
                //程序的 可读性
                 int a = 1;
                 int b = 2;
                 int c = 3;
                 String name = "name";
                 char x = 'X';
                 double p1 = 3.14;
                 
            }
        }
        
        变量作用域
        • 类变量
        • 实例变量
        • 局部变量
        public class Demo5 {
        
            // 常量
            //public private final static 修饰符 不存在先后顺序
            static final double PI = 3.14;
            final static double PI2 = 3.14;
        
            //属性:变量
        
            // 类变量 static  与类一起出现,一起消失!
            static double salary = 2500;
        
            //实例变量:从属于对象,在方法外面定义
            //如果不自行初始化,这个类型的默认值:0,0.0, null(u0000)
            // 布尔值 boolean默认:false
            // 除了基本类型,其余的默认值都是null
            String str ; //实例变量
            int age;
        
            static int allClicks = 0;  // 类变量  static 静态的
        
            //main方法:主程序方法
            public static void main(String[] args){
        
                //常量
                System.out.println(PI);
                System.out.println(PI2);
        
                //局部变量 是在方法里:{}里 :必须声明和初始化值
                int i = 10;
        
                //使用实例变量:变量名字 == new Demo5();
                //变量类型 Demo5
                Demo5 demo5 = new Demo5(); //建立对象
                System.out.println(demo5.age); //没有默认初始值,初始值为0
                System.out.println(demo5.str); //没有默认初始值,默认值 null
        
                //类变量 static
                System.out.println(salary);//可以直接输出
        
            }
        
            //其他方法
            public void method(){
                int i = 0; //局部变量
            }
        
        }
        
        
        常量
        • 常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。
        • 所有常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
        • 常量名一般使用大写字符!
        变量的命名规范
        • 所有变量:方法、类名:见名知意
        • 类成员变量:首字母小写和驼峰原则:monthSalary (除了第一个单词,后面的单词首字母大写 lastName)
        • 局部变量:首字母小写和驼峰原则
        • 常量:大写字母和下划线:MAX_VALUE
        • 类名:首字母大写和驼峰原则:Man,GoodMan
        • 方法名:首字母小写和驼峰原则:run(),runRun()
        运算符
        • Java 语言支持如下运算符:
          • 算术运算符:+、-、*、/、%(取余)、++、--
          • 赋值运算符:=
          • 关系运算符:>、<、>=、<=、==(等于)、!=(不等于)、instanceof
          • 逻辑运算符:&&(与)、||(或)、!(非)
          • 位运算符:&、|、^、~、>>、<<、>>>(了解即可)
          • 条件运算符:?、:
          • 扩展赋值运算符:+=、-=、*=、/=
        package operator;
        
        
        public class Demo1 {
            public static void main(String[] args){
                //二元运算符
                // Ctrl + D  复制当前行到下一行
                int a = 10;
                int b = 20;
                int c = 25;
                int d = 25;
        
                System.out.println(a+b);
                System.out.println(a-b);
                System.out.println(a*b);
                System.out.println(a/b);// 0.5 不是int类型 四舍五入 需要强转 a/(double)b
        
                System.out.println("=====================");
                long l1 = 1212121212;
                int i = 123;
                short s = 10;
                byte dd = 8;
        
                System.out.println(l1+i+s+dd); //long 只要存在long类型,结果也为long类型
                System.out.println(i+s+dd); //int 没有long类型,结果都为int
                System.out.println(s+dd);// int
                System.out.println((double)s+dd);//double 类型  只要存在double类型,结果也为double类型
        
        
                System.out.println("=====================");
                //关系运算符的结果:布尔值 正确 错误
                //多和if 一起用
                int a1 = 10;
                int a2 = 20;
        
                System.out.println(a>b);//false
                System.out.println(a 
        
        package operator;
        
        
        public class Demo2 {
            public static  void main(String[] args){
                // 与(and) 或(or) 非(取反)
                boolean a = true;
                boolean b = false;
                System.out.println("a && b ="+(a && b)); //逻辑与运算:两个变量都为真,结果才为真true
                System.out.println("a || b ="+(a || b)); //逻辑或运算:两个变量有一个为真,结果为真true
                System.out.println("!(a && b) ="+(!(a && b)));//逻辑非运算:如果是真即为假,如果为假即为真
        
                //短路运算
                int c = 5;
                boolean d = (c < 4)&&(c++<4);
                System.out.println(d);
                System.out.println(c);// 5 因为(c < 4)&&(c++<4)中(c < 4)已经为false,因此不会再计算(c++<4) c依旧为5
        
                //位运算
                
        
                
                System.out.println("====================");
                
                System.out.println(2<<3);
        
                System.out.println("====================");
                //
                int x = 10;
                int y = 20;
        
                x+= y; //x = x+y
                System.out.println(x);
        
                x = 10;
                y = 20;
                x-= y; //x = x-y
                System.out.println(x);
        
                System.out.println("====================");
                x = 10;
                y = 20;
                //字符串链接符  +
                System.out.println("——"+ x + y);// ——1020 只要+两侧有一侧是String类型,
                System.out.println(x + y +"——");// 30——  如果先+是数,则先计算后String拼接
        
                System.out.println("====================");
                //三元运算符  ? :
                // x ? y : z
                //如果x==true,则结果为y,否则结果为z
        
                int score = 80;
                String type1 = score < 60 ? "不及格": "及格";
                System.out.println(type1);//及格
        
                score = 50;
                String type2 = score < 60 ? "不及格": "及格";
                System.out.println(type2);//不及格
            }
        
        }
        
        运算符优先级

        包机制 (文件夹)
        • 为了更好的组织类,Java提供了包机制,用于区别类名的命名空间。
        • 包语句的语法格式为:
          package pkg1[.pkg2[.pkg3...]];
        • 一般利用公司域名倒置作为包名 :com.test.blog.www
        • 为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用import语句可完成此功能
          import package1[.package2...].(classname|*);

        改变一下以上项目的存储方式:

        // 定义包:写在所有代码的最前面
        // 查看包:command/Ctrl + 点击 
        package com.learn.base;
        package com.learn.operator;
        
        //导入包
        //自动生成包,快捷键macOS:option+shift+Enter  Windows: Alt+Enter
        import com.learn.base.Demo1 //必须在package...下面
        import com.learn.* //.*通配符,导入包下所有的类
        
        JavaDoc

        Java官方文档

        Jdk8官方文档

        • Javadoc命令是用来生成自己的API文档的
        • 参数信息:
          • @author 作者名
          • @version 版本号
          • @since 指明需要最早使用的jdk版本
          • @param 参数名
          • @return 返回值情况
          • @throws 一场抛出情况
        生成自己的API文档

        先写好自己的注释

        package com.learn.base;
        
        
        public class doc {
            String name;
            
            
            public String test(String name) throws Exception{
                return name;
            }
             //通过命令行生成文档: javadoc 参数 java文件
        }
        

        自动生成文档:
        可以在要生成文档的的文件夹下打开命令行:(在当前doc文件下)

        # encoding 编码  chartset 字符集编码 可显示中文
        javadoc -encoding UTF-8 -charset UTF-8 doc.java
        

        cmd代码:

        代码运行后会生成很多文件:关注index.html

        文档内容:

        来源:狂神说

        狂神说

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/854463.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号