JAVA学习第一、二、三周

 

目录

一、认识JAVA

1、JAVA介绍

2、JAVA优点

3、Java SE 和 Java  EE

二、环境配置

         1、编程环境:安装JDK、JRE

2、系统环境变量设置

3、编程工具

3、JAVA体系结构

5、编译步骤(工作原理)

6、编译器和编辑器

三、JAVA代码结构

1、代码块

2、public class

3、字节码

4、命名规则

5、输出打印:System.out.println("");

6、键盘输入:Scanner 

7、随机函数random()

四、JAVA语言基础

1、位运算

2、标识符

3、数据类型

4、短路操作

5、四舍六入

五、JAVA面向对象

1、一维、二维数组


一、认识JAVA

1、JAVA介绍

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。

Sun公司研发人员并没有开发一种全新的语言,而是根据嵌入式软件的要求,对C++进行了改造,去除了留在C++的一些不太实用及影响安全的成分,并结合嵌入式系统的实时性要求,开发了一种称为Oak的面向对象语言。1995年Oak更名为Java

2、JAVA优点

1.简单性:Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序,因为Java没有结构,数组和串都是对象,所以不需要指针。

2.面向对象:Java是一个面向对象的语言。

3.分布性:Java设计成支持在网络上应用,它是分布式语言。网络变成软件应用的分布运载工具。Java程序只要编写一次,就可到处运行。

4.编译和解释性:Java编译程序生成字节码(byte-code),而不是通常的机器码。Java字节码提供对体系结构中性的目标文件格式,代码设计成可有效地传送程序到多个平台。Java程序可以在任何实现了Java解释程序和运行系统(run-time system)的系统上运行。因此,Java支持快速原型和容易试验,它将导致快速程序开发。这是一个与传统的、耗时的“编译、链接和测试”形成鲜明对比的精巧的开发过程。

5.稳健性:Java原来是用作编写消费类家用电子产品软件的语言,所以它是被设计成写高可靠和稳健软件的。Java消除了某些编程错误,使得用它写可靠软件相当容易。

6.安全性:Java的存储分配模型是它防御恶意代码的主要方法之一。Java没有指针,所以程序员不能得到隐蔽起来的内幕和伪造指针去指向存储器。

7.可移植性:Java环境本身对新的硬件平台和操作系统是可移植的。

8.高性能:Java是一种先编译后解释的语言,所以它不如全编译性语言快。但是有些情况下性能是很要紧的,为了支持这些情况,Java设计者制作了“及时”编译程序,它能在运行时把Java字节码翻译成特定CPU(中央处理器)的机器代码,也就是实现全编译了。

9.多线程性:Java是多线程语言,它提供支持多线程的执行(也称为轻便过程),能处理不同任务,使具有线索的程序设计很容易。

10.动态性:Java语言设计成适应于变化的环境,它是一个动态的语言。

3、Java SE 和 Java  EE

Java SE——J2SE  称为Java标准版,该平台可以开发java桌面应用程序和低端的服务器应用程序。

Java  EE——J2EE  称为Java企业版,该平台可以构建企业级的服务应用,Java EE平台包含了 Java SE平台。

二、环境配置

1、编程环境:安装JDK、JRE

JDK——JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Environment),一些Java工具和Java的核心类库(Java API)。里面包含了编译器javac.exe 和 解释器java.exe

JRE——Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(JAVA Runtime Environment),JRE是支持Java程序运行的标准环境

JRE是个运行环境,JDK是个开发环境。因此写Java程序的时候需要JDK,而运行Java程序的时候就需要JRE。而JDK里面已经包含了JRE,因此只要安装了JDK,就可以编辑Java程序,也可以正常运行Java程序。但由于JDK包含了许多与运行无关的内容,占用的空间较大,因此运行普通的Java程序无须安装JDK,而只需要安装JRE即可

2、系统环境变量设置

(1)设置系统变量JAVA_HOME

我的电脑——属性——系统特性——高级属性设置——环境变量(或者直接按键盘windows键,设置——搜索环境变量)

添加系统环境变量(不是用户环境是系统环境),让该环境变量值是JDK目录结构的根目录(就是安装路径)。

java代码的语法树_java

(2)系统环境变量Path设置

目的是为了能在任何目录中使用安装的JDK平台里面的Java编译器javac.exe和Java解释器java.exe,所以要在系统环境中设置Path

点击编辑系统变量,在Path里面添加新值 JDK安装路径加上\bin  (因为Java编译器javac.exe和Java解释器java.exe在\bin目录下)

因为第一步设置里JDK的安装路径为JAVA_HOME了,所以可以用%JAVA_HOME%替代JDK的安装路径,,现在只需要在后面添加上\bin就行

java代码的语法树_Java_02

3、编程工具

Eclipse:一个开放源代码的、基于Java的可扩展开发平台。

NetBeans:开放源码的Java集成开发环境,适用于各种客户机和Web应用。

IntelliJ IDEA:在代码自动提示、代码分析等方面的具有很好的功能。 

MyEclipse:由Genuitec公司开发的一款商业化软件,是应用比较广泛的Java应用程序集成开发环境 。

EditPlus:如果正确配置Java的编译器“Javac”以及解释器“Java”后,可直接使用EditPlus编译执行Java程序 。

4、JAVA体系结构

是跨平台的,只需一次编译生成字节码就可以到任何系统去运行 原理:使用虚拟机JVM统一字节码(JVM是由大厂维护,攻克不易,反汇编困难,所以JAVA系统是很安全的)   Java不是类型语言(编译型和解释型) 编译型:一次性翻译完再执行 解释型:翻译一句执行一句

5、编译步骤(工作原理)

JAVA 源文件后缀名必须为.java     字节码文件后缀名为 .class 1-编译器——使用javac将源码变为.class(字节码)——编译运行静态错误 2.解释器——使用java将字节码在虚拟机JVM上运行——解释运行动态错误

6、编译器和编辑器

编译器 ——就是将源码编译为计算机能执行的代码 (eclipse , NetBeans , 企业使用 Intelli J IDEA——学习J2EE使用),kotlin是开发安卓手机的语言

编辑器(IDE:集成开发环境)——就是为了提高开发效率的一个集成开发环境 (NetBean  clang  g++  gcc)  JAVA集成开发环境都将JDK作为系统的核心

三、JAVA代码结构

1、代码块

一个大括号{}陈为一个代码块

2、public class

一个文件只有一个public class

3、字节码

联合编译——每一个类生成一个字节码  .class文件

4、命名规则

项目名字:小写 public class 首字母大写与项目名相同

5、输出打印:System.out.println("");

6、键盘输入:Scanner 

       工具包:import java.util.Scanner;

       Scanner sc = new Scanner(System.in);         int n = sc.nextInt();

7、随机函数random()

(1)、Math.max( x , y )函数可以替换  x > y ? x : y

(2)、random()随机函数

设计x到y区间的随机数方法: int x=int(Math.random()*(大数-小数))+小数

四、JAVA语言基础

1、位运算

位运算就是二进制进行计算效率很高按位非 按位与 按位或 按位异或 ^ 右移 左移

2、标识符

下划线、字母、$开头

3、数据类型

(1)、数据类型转换     x+""+y     String.valueoOf(x) 陷阱:当x='a'       y=2时         x = x+y(此处是错误的,类型不同)

x +=y是可以的,因为该等式已经包含了类型转换

(2)、原生数据类型

int  double   float等

(3)、引用数据类型

引用数据类型:不知道数据的大小 str数据类型是引用(str有4个字节大小)   str数据类型编译时会预留4个字节的大小,等new计算后创建合适的空间大小,然后把该新建的空间地址写入str预留的空间里面

new:计算数据类型的大小,凡是编译器不知道数据大小的就需要使用new——比如数组 int x[ ] = new int [10]

Student stus[]=new Student[20]

stus[0] =new Student(1234,张三)

4、短路操作

前面条件以及可以判断时,后面的不再运行

5、四舍六入

四舍六入五成双 奇数进,偶数舍掉

五、JAVA面向对象

1、一维、二维数组

(1)currentTimeMillis():该函数可以得出评估一段代码的时间,该函数可以得出当前时间的毫秒 (2)一维数组     数组拷贝:   浅拷贝   深拷贝     数组排序:   sort()     for新写法:   for(int i : num) 此写法i是值,i相当于是指针,该指针指向num数组。特别的当指向第一个num并输出后,i存的指针重新指向第二个num的值      此方法只能用来输出,不可以用来赋值 (3)二维数组     维数的概念