文章目录
- Java特性和优势
 - java三大版本
 - JDK、JRE、JVM(从前到后包含)
 - Java开发环境搭建步骤
 - Java程序运行机制
 - IDE
 - Java基础语法
 - 一、注释、标识符、关键字
 - 二、数据类型(shift双击问题)
 - 三、变量、常量、作用域
 - 四、运算符
 - 五、包机制、JavaDoc
 
- Java进阶语法
 - 一、Scanner用户交互(输入)
 - 二、for迭代器(debug学习)
 - 三、方法
 - 四、数组
 - 五、面向对象
 - 六、异常
 
Java特性和优势
- 简单性
 - 面向对象
 - 可移植性
 - 高性能
 - 分布式
 - 动态性
 - 多线程
 - 安全性
 - 健壮性
 
java三大版本
- JavaSE:标准版,java基础*
 - JavaME:嵌入式开发
 - JavaEE:企业级开发,web开发*
 
JDK、JRE、JVM(从前到后包含)

Java开发环境搭建步骤
- JDK下载安装
 - 配置环境变量
 - 网上找教程安装即可
 
Java程序运行机制
- 编译型:用编译器把整个程序.java 编译成.class(操作系统要求低)
 - 解释型:实时解释程序语句(速度快)
 - 程序运行机制

 
IDE
IDE(集成开发环境)
 Java常用的IDE:Eclipse、Idea…
Java基础语法
一、注释、标识符、关键字
注释:
- 结构复杂需要使用
 - 注释给开发人员看的
 - 写注释是一个合格的开发者必备修养
 
Java注释的三种方式:
- 单行注释
 - 多行注释
 - 文档注释
 
public class demo1 {
    public static void main(String[] args) {
        //单行注释
        /*
        * 多
        * 行
        * 注
        * 释
        * */
        /** @Description 文档注释,写的会比较少
         *  @Author along
         *  */
        System.out.println("demo!");
    }
} 
 
标识符:
 
Java所有的组成部分都需要名字,比如类名、方法名、变量名都是标识符。
 注意点:
- 标识符首字符由字母、下划线、$开始
 - 变量由字母、下划线、$、数字组成
 - 变量不能以数字开头,可以用中文但不必要
 
二、数据类型(shift双击问题)
- 强类型语言
 -  
  
- 要求变量使用严格符合规定,所有变量需要先定义才能使用,安全性高。
 
 - 弱类型语言
 
Java数据类型分类

public class Demo2 {
    public static void main(String[] args) {
        // 八大基本类型
        // 整数
        int t1=65536*32767;
        byte t2=127;
        short t3=32767;
        long t4=100000L;
        // 小数:浮点型
        float f1=3.9F;
        double f2=454.345;//更大
        //字符,和ASCII码相关
        char grade='A';
        //字符串,String 类
        //布尔型
        boolean b=false;
    }
}
 
双击shift问题
一、引言
我们在使用IDEA时,有时候在切换中英文输入法的时候,会不小心按了两次shift键,从而弹出 全局搜索框 ,让人不耐其烦,每次都要手动关闭这个搜索框。
二、取消双击shift
1.按ctrl+shift+alt+/ 在弹出的框中选择注册表(registry…)
2.找到ide.suppress.double.click.handler选项,选中打上勾,然后点close。
扩展:
 整数进制转换
 浮点数问题
 float和double是有限的,离散的,会四舍五入,都是约等于
 所以有时候float类型的不等于double类型,因为舍入的精确位数不同
 如果银行业务需要更高的精度,使用BigDecimal类
 字符的本质都是数字,各种编码表示,比如中文也是一个数字,转义字符比如\n,\t,\a…
类型转换
 低----------------------------------------------------------->高
 byte,short,char–>int–>long–>float–>double
- 强制类型转换 (int)a 高到低,可能出现内存溢出
 - 自动类型转换 低到高顺其自然即可
 
三、变量、常量、作用域
Java变量是程序中最基本的存储单元,包括了变量名,变量类型和作用域。
- 变量必须声明它的类型
 - 变量名必须合法
 - 变量声明以分号结尾
 
public class Demo4 {
    // 属性:变量
    static int classVariable=0;
    // 常量
    static final double PI=3.1415926;
    // main
    String str="hhh";
    public static void main(String[] args) {
        //局部变量:声明并初始化才可使用
        float f=1.1f;
        //调用实例变量,属于对象,new 对象即可使用
        System.out.println(new Demo4().str);;
    }
    // 方法
    public void fun() {
    }
} 
 
常量使用关键字final 定义,是一个特殊的变量,值不会被改变。
变量的命名规范
- 所有变量、方法、类名最好见名知意
 - 类成员 变量驼峰式命名testFirst
 - 常量 大写和下划线组成
 - 类名 首字母大写,并且使用驼峰式
 - 方法名 首字母小写和驼峰式
 
四、运算符

 Math类是很方便的算术工具类 Math写了之后很多方法都可以点出来
 
 
public class Demo6Summary {
    public static void main(String[] args) {
        int a = 10;int b = 20;
        a+=b; //a = a+b
        a-=b; //a = a-b
        System.out.println(a);
        //字符串连接符+ , string
        System.out.println(""+a+b);//输出字符串
        System.out.println(a+b+"");//运算后变成字符串
        //理解优先级,优先级高的先运算,最高的是()
    }
}
 
五、包机制、JavaDoc
包的本质就是文件夹
 作用:命名可能会出现很多重复,用包隔开文件即可重复命名并不冲突。
 
//包语句语法格式,文件夹分别后会自动加在第一行
package p1.[p2.[p3...]];
//一般利用域名倒置作为包名
//为了使用某个包中的成员,可以导入该包使用,语法如下
import p1.[p2.[p3...]].classname|*
 
JavaDoc(文档注释)
 javadoc在命令行中可以生成自己的
 
/**
 * @author along
 * @version jdk9
 */
public class Doc{
    /**
     * 求输入两个参数范围以内整数的和
     * @param n 接收的第一个参数,范围起点
     * @param m 接收的第二个参数,范围终点
     * @return 两个参数范围以内整数的和
     */
    public int add(int n, int m) {
        int sum = 0;
        for (int i = n; i <= m; i++) {
            sum = sum + i;
        }
        return sum;
    }
} 
 
在文件所在文件夹中打开cmd 运行“javadoc -encoding UTF-8 -charset UTF-8 Doc.java ” 因为出现乱码,所以加了这两个字符集设置。
 
 
最后可以生成Doc相关的API网页
Java进阶语法
文章目录
- Java特性和优势
 - java三大版本
 - JDK、JRE、JVM(从前到后包含)
 - Java开发环境搭建步骤
 - Java程序运行机制
 - IDE
 - Java基础语法
 - 一、注释、标识符、关键字
 - 二、数据类型(shift双击问题)
 - 三、变量、常量、作用域
 - 四、运算符
 - 五、包机制、JavaDoc
 
- Java进阶语法
 - 一、Scanner用户交互(输入)
 - 二、for迭代器(debug学习)
 - 三、方法
 - 四、数组
 - 五、面向对象
 - 六、异常
 
一、Scanner用户交互(输入)
用户交互是在java.util中的Scanner,要导入所在包
 基本语法:
Scanner sc = new Scanner(System.in);
 
通过Scanner类的next()和nextLine()方法拿到输入的字符串,判断是否还有输入的方法是hasNext()和hasNextLine()
import java.util.Scanner;
public class Demo1 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("next接收:");
        if(sc.hasNext()){
            int number=sc.nextInt();
            System.out.println(number);
        }
        //IO流的类最好用完就关闭,否则会占用资源
        sc.close();
    }
}
 
其中next()接收遇到空格会停止,nextLine()读取行
package com.along2;
import java.util.Scanner;
public class Demo2 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        if(sc.hasNextInt()){
            int num=sc.nextInt();
            System.out.println(String.format("输出num=%d", num));
        }else{
            System.out.println("请输入整数!!");
        }
        sc.close();
    }
}
 
二、for迭代器(debug学习)
if,else,switch,break,continue省略,几乎每个语言都有,差别不大
 while,dowhile,for基础也差不多
package com.along2;
public class Demo3 {
    public static void main(String[] args) {
        int [] a={1,2,3,4,5,6,7,8};
        for(int i=0;i<a.length;i++){
            System.out.println(a[i]);
        }
        for(int x:a){
            System.out.println(x);
        }
    }
}
 
学习debug
 用循环控制*符号设计一个梯形
 
package com.along2;
public class Demo4 {
    public static void main(String[] args) {
        for(int i=0;i<4;i++){
            if(i<1)continue;
            for(int j=4;j>i;j--){
                System.out.print(" ");
            }
            for(int j=0;j<2*i;j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
 



















