华清远见重庆中心--Java基础阶段技术总结/个人总结

本文回顾了Java语言从Oak的起源,到1995年Java诞生,JavaSE、JavaEE的演变,以及Oracle时代的重要更新,如Java8的流行。介绍了Java的不同版本及其应用场景,包括JavaMe、JavaSE和JavaEE的用途。同时,概述了Java的优点、安装、基础语法和注意事项。
摘要由CSDN通过智能技术生成

Java的发展历史

1990年,SUN公司推出了”Green计划“,由James Gosling领导设计出了一门叫做Oak的语言,为了实现智能设备,但并未发展成果,只是这门语言保留了下来。

1990年,由于互联网的流行,Oak语言经过改造,成为了现在的java。所以,Oak就是java语言的前身。

  • 1995年,java正式诞生,推出了Java1.0以及开发包 JDK1.0。

  • 2004年,Java推出了Java5,此后都以JavaX命名。

  • 2009年,SUN公司被Oracle收购,之后都有Oracle进行更新维护。

  • 2014年,推出了Java8,是当前最流行的Java版本,也是长期维护的版本(LTS)。

  • 当前长期维护版本为Java8、Java11、Java17。

 

Java能做什么

Java的分类

  • javaMe

  • javaSE\笔记

  • javaEE

javaMe称为Java微星版,用于开发移动应用,早期的塞班系统中会使用,如今基本已经淘汰。

javaSE称为Java标准版,是Java的核心和基础,也是JavaMe和JavaEE的核心,可以用于开发桌面端程序,如IDEA就是用Java开发的。

javaEE称为Java企业版,用于开发WEB应用,Java的流行全靠javaEE,WEB应用如门户网站、电子商务、电子政务等服务器都是由javaEE实现。

Java的优点 

  1. 简单
  2. 安全
  3. 开源
  4. 多线程
  5. 半解释半编译

Java的安装和环境搭建

  • 下载 JDK 安装

 Java 下载 |甲骨文中国 (oracle.com)

 

第一个Java程序

/**
* 文档注释
* 通常用于解释整个java类或某个方法或某个变量,
* 最终可以通过java命令自动生成文档
*
* 每一个源文件的类型都是.java
* public class 表示公开的类
* Hello为类名,必须与当前源文件名一致
* 类用一个大括号包裹所有内容
*/
public class Hello {
/*
多行注释
通常用于解释一段内容
没有返回值的公共静态方法,方法名为main表示Java程序的入口
小括号中的内容称为方法的参数列表
大括号中的内容称为方法体
一个能够运行的java类,必须有且只有一个main方法
*/
public static void main(String[] args) {
//单行注释 ,通常用于解释一句话
System.out.println("使用println输出");//输出并换行
//ctrl+/
System.out.print("使用print输出");//输出不换行
//直接换行
//System.out.println();屏蔽代码
}
}

 Java代码中的注意事项

  • 要写代码,必须先创建class,class称为类,是一个Java程序的基本组成单位
  • 每个能够运行的Java程序,有且只有一个main方法,称为主方法/入口函数,是程序的起点
  • 符号

    • Java中的符号全部都是英文状态下的符号。可以在输入法中设置中文状态下使用英文标点

    • “{}”必须成对出现。用于定义类、定义方法和定义代码块

    • “[]”必须成对出现。用于定义数组、使用数组

    • “()"必须成对出现。用于表示方法的参数

    • “空格”用于分割关键字和代码。可以是一个空格,也可以是多个

    • “.”用于调用某个类或对象的属性和方法

    • “;"用于表示一句代码的结束,大括号后不需要加分号

  • 换行和缩进

    • 在每出现一次大括号时,就要进行一次缩进

 Java中的注释

注释可以对代码进行解释说明或者屏蔽不用的代码

编译时无视注释,注释分为

  • 单行注释

    • 快捷键:ctrl + /
  • 多行注释

    • 快捷键:ctrl + shift + /
  •  文档注释
  • /**
    * 文档注释
    * 通常用于解释整个java类或某个方法或某个变量,
    * 最终可以通过java命令自动生成文档
    */
    public class Hello {
        /*
            多行注释
            通常用于解释一段内容
        */
        public static void main(String[] args) {
            //单行注释 ,通常用于解释一句话
            System.out.println("使用println输出");//输出并换行
            System.out.print("使用print输出");//输出不换行
            //直接换行
            //System.out.println();注释还可以屏蔽代码
        }
    }
    

编程语言的命名规则 

驼峰命名法

  •   如果用多个单词描述一个内容,除首字母外,其它单词首字母大写
  •   如 studenName、empld

帕斯卡命名法

  •   所有首字母全部大写
  •   如:StuendClass、EmpName

Java中的标识符及命名规则

阿里巴巴Java开发手册_w3cschool

Java中的类名、方法名和变量名统称为标识符

  • 类名使用帕斯卡命名
  • 方法名和变量名使用驼峰命名法
  • 命名时做到“见名知意”

这些要求不是强制执行的,属于开发人员约定俗成的内容 

规则

  • 标识符使用字母、数字、下划线和$组成
  • 不能以数字开头
  • 不能使用Java中的关键字(保留字)
  • 图示:

 这些要求是强制的,如果不遵循,无法通过编译。

标准命名举例

类名  Test Person Animal Cat UserController StudentService

变量名  age lastName firstName

方法名  login() findEmpById(int id)

常量  COUNTRY_NAME

Java中的数据类型 

原始(基本类型)类型和引用类型

原始类型

整型

  • byte字节
  • short短整型
  • int整型
  • long长整型,赋值时在数字后加l或L

浮点型

  •  float单精度浮点型,赋值时在数字后加f或F
  • double双精度浮点型

字符型

  •  char,赋值时可以是单引号引起来的字符或一个数字,这是数字是ascii中的数字或者是一个 转义字符
  • ASCII码

转义字符

转义字符 意义ASCII码值(十进制)
\a响铃(BEL)007
\b退格(BS),将当前位置移到前一列008
\f换页(FF),将当前位置移到下页开头012
\n换行(LF),将当前位置移到下一行开头010
\r回车(CR),将当前位置移到本行开头013
\t水平制表(HT),(跳到下一个TAB位置)009
\v垂直制表(VT)011
\\代表一个反斜线字符 " \ "092
\'代表一个单引号(撇号)字符039
\"代表一个双引号字符034
\?代表一个问好063
\0空字符(NUL)000
\ddd1到3位八进制数所代表的任意字符三位八进制
\xhh十六进制所代表的任意字符十六进制
  •  布尔值
    类型名所占字节大小范围
    byte1字节~128~127
    short1字节~32768~32767
    int4字节~2147483648~2147483647
    long 8字节~2^63-2^63-1
    float4字节
    double8字节
    char2字节用单引号引起来的一个字符。在java中,不管是数字还是英文还是汉字, char都占用2个字节。因为Java编译器默认使用Unicode编码。
    booleantrue/flase

    在程序中写出的整数,默认时int类型,写出的小数,默认是double类型

运算符

算术运算符 

需要两个操作符的运算,如果有浮点数参与,结果为浮点型数据

符号作用说明
+如果两个数都是数值型的数据,用于计算,如果+左右两端一端是字符串,则用于拼接字符串
-只能用于数值型数据
*只能用于数值型数据
/

只能用于数值型数据,如果两个整数橡树,结果只能保留整数部分(商)

%取余

只能用于数值型数据,商一定是整数

循环

如果要重复执行某些代码时,则需要使用循环语句

while循环:

语句:while(循环条件){

                满足条件是重复执行的代码

}

执行流程:

限制性小括号中的内容,如果结果为true,执行大括号中的内容,判断结果为false则停止循环。

  • 注意! 
  • while循环先判断后执行,因此极有可能一次都不执行
  • 例:
    //打印0-100以内的所有偶数
    int num = 0;
    while (num<=100){
        if (num%2==0){
            System.out.print(num+"\t");
        }
        num++;
    }
    //第二种:执行效率快
    while (num<=100){
                System.out.print(num+"\t");
                num+=2;
            }

    do-while 循环:

         语法:do{

                        满足条件时执行的代码

                }while(循环条件)

执行流程 :

先执行一次大括号中的内容,再判断while小括号中的内容,如果成立,再次执行do大括号中的内容,如果不成立,停止循环。

  • 注意!
  • do-while是先执行后判断
  • do-while至少会执行一次
  • 例:
    //假设密码为123123,接收输入的密码,判断是否正确
    //如果正确,输出正确,如果错误,重新输出,最多输入3次
    Scanner scanner = new Scanner(System.in);
            System.out.println("请输入密码:");
            int pwd;//密码
            int count=1;//次数
            do {
                pwd = scanner.nextInt();
                if (pwd == 123123) {
                    System.out.println("密码正确");
                } else {
                    System.out.println("请重新输入密码");
                }
                count++;
                if (count==3){
                    System.out.println("次数已达上限");
                    //停止循环
                    break;
                }
            } while (pwd != 123123);

 for循环

语法:for(表达式1;表达式2;表达式3;){

                  循环体

        }

表达式1:定义循环变量(第一步执行)

表达式2:判断循环条件(第二步执行)

表达式3:更新循环变量(第四步执行)

循环体(第三步执行)

执行流程:

首先执行表达式1,再执行表达式2,如果表达式的结果为true,执行循环体,再执行表达式3,执行表达式2判断,如果表达式2结果为false,结束循环.

代码演示:

for (int i =1; i<10;i++){
    System.out.println(i);
}//输出1-10的所有数字

数组(一维数组)

概念

一组类型相同的数据的有序集合,实际在内存中是一块连续的空间,是保存数据的区域

关于数组

实际在内存中是一块连续的空间,是保存数据的区域

数组定义时需要确定大小和数据类型,不可改变

定义数组时的变量保存的是实际内存空间的地址

数据中保存的数据称为元素,每个元素有一个唯一的位置,称为索引(下标),这个索引从0计数

可以通过数组的索引给数组赋值或读取数组中某个索引上的值

图示:

定义数组 

语法:数据类型[]数组名数据类型 数组名[],建议使用前者

定义数组后,如果不初始化数组,数组无法使用,

代码演示:

//定义数组,如果数组未初始化,不能使用
int[]score;
//可以这样写,但不建议
//int score[];

数组初始化

语法:数组名=new数据类型[数组大小]

代码演示:

//定义一个保存数组的变量的nameList
String[] nameList;
//在内存中申请一块连续空间,将这个空间的地址保存到比那辆nameList中
nameList=new String[10];

定义数组的同时初始化

语法:数据类型[] 数组名 = new 数据类型[数组大小];

代码演示: 

double[] salary = new double[30];

给数组赋值

动态赋值:通过数组名[索引]给数组中某个位置赋值

代码演示:

int[] list = new int[10];
list[0]=123;//索引从0开始
list[9]=22;//最大索引为数组大小-1
list[22]=5;//能通过编译,但是在运行时会抛出数组越界异常

静态赋值

在定义数组的同时赋值

  • 数据类型[]数组名=new 数据类型[]{元素1,元素2,....}

代码演示:

String[] nameList = new String[]{"小明","王海","刘希"}
  • 数据类型[]数组名={元素1,元素2...}

  • 代码演示:

    String[]nameList = {"小明","王海","刘希"}

注意!

  •  数组一旦初始化后,数组大小不能改变,其中的元素类型要统一
  • 数组的索引范围时[0,数组大小-1],使用时不能超过范围,在编译无法识别是否超出数组索引,但运行时会抛出“数组索引溢出”异常

  • 数组一旦初始化后,如果没有赋值,默认有初始值

  • 数组数据类型

    默认值

    整型

    0

    浮点型

    0.0

    应用类型(如String等)

    null

    布尔型

    false

    字符型

    空白字符

个人总结:

  1. Java语言涉及多类技术,需要明确该技术是什么,特点,怎么使用,什么时候用,这些需要牢记。
  2. 编写代码时,需要明确需求,分析思路,确定编写步骤,然后实现代码。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值