一起来学习Java吧,第一天就从历史开始吧
1、Java历史:(了解)
1、诞生于SUN(Standford University Network)
2、大概于1996年发布正式的第一版
3、Java之父:詹姆斯.高斯林
4、2009年SUN被Oracle(甲骨文)收购
5、目前学习(开发)的版本是Java8
6、最新版本:Java12
7、Java分为三大方向:JavaSE,JavaEE,JavaME
Java9尝试把JavaSE,JavaEE,JavaME合起来。用模块的方式进行区分。
2、Java的特点(了解)
(1)面向对象:关注类、对象、接口等,以及继承、实现等关系
(2)强类型:关注数据类型
(3)体系中立的:字节码.class文件
(4)垃圾回收:GC
3、Java语言运行机制:跨平台
跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行。
“Write once , Run Anywhere”一次编写,处处运行。
原理:Java程序不是直接运行在操作系统上,而是运行在JVM(Java Virtual Machine)。
而不同的操作系统平台,可以安装不同的JVM。这个虚拟机只要下载安装就可以了,
程序员不用管,程序员只要关注自己的Java程序就可以。
Java程序开发和运行的步骤:
1、编写Java代码,保存的代码的文件.java
后缀名:.txt,.doc,.jpg,.mp4等
2、编译Java代码为字节码,字节码文件.class
为什么要编译为字节码呢?因为JVM只认识字节码,不认识Java代码
3、运行字节码
把字节码再转成CPU能执行的机器指令。
4、开发环境搭建
(1)
JDK:Java Developer's Kit,Java开发工具包
JDK = JRE + 开发工具集
JRE:Java Runtime Environment,Java运行环境
JRE = JVM + 核心类库(提前写好的代码)
JVM:Java Virtual Machine,Java虚拟机,
运行Java程序需要用到JVM
如果仅仅是运行Java程序,只要装JRE就可以了,不需要装JDK。
如果是要开发Java程序,那么必须安装JDK。
(2)下载与安装
网址:www.oracle.com
下载时注意:是什么平台
例如:windows的64位:jdk-8u141-windows-x64.exe
安装:傻瓜式安装
提醒:
①以后我们作为开发人员,安装软件时,要避免中文目录
②每一个软件的安装建立自己的目录
(3)卸载
①控制面板
②通过“360”或“电脑管家”进行卸载
5、环境变量
为什么要配置环境变量?
windows等操作系统,默认是在当前路径下找“命令”等工具的。
如果我希望它在我指定的目录下去查找这个“命令”,那么我就要
在path这个环境变量中,把目录添加上去。
windows等操作系统,除了在当前目录下查找,还会去path环境变量指定的目录下搜索命令。
【计算机】-》右键-》【属性】-》【高级系统设置】-》【高级】-》【环境变量】
【用户环境变量】只针对当前用户(操作系统登录的用户)
【系统环境变量】针对所有用户的
path=D:ProgramFilesJavajdk1.8.0_141in;之前的环境变量的值
说明:;必须是英文状态下,半角输入,用于和其他原有的环境变量的分割
Win7
D:ProgramFilesJavajdk1.8.0_141in;D:ProgramFilesmysqlmysql-5.6.26-winx64-serverin;D:ProgramFiles omcatapache-tomcat-8.0.24in;d:ProgramFiles2345SoftHaoZip;C:Program Files (x86)InteliCLS Client;C:Program FilesInteliCLS Client;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:Program FilesIntelIntel(R) Management Engine ComponentsDAL;C:Program Files (x86)IntelIntel(R) Management Engine ComponentsDAL;C:Program FilesIntelIntel(R) Management Engine ComponentsIPT;C:Program Files (x86)IntelIntel(R) Management Engine ComponentsIPT;C:Program FilesIntelWiFiin;C:Program FilesCommon FilesIntelWirelessCommon;C:Program FilesLenovoFingerprint Manager Pro;C:Program Files (x86)Common FilesLenovo;C:SWTOOLSReadyApps;D:ProgramFilesMySQLMySQL Server 5.5in
Win10
表格形式,一行一个环境变量
重点解析:关于JDK的安装和环境变量的搭建
四、开发环境搭建
JVM、JRE、JDK介绍
运行Java程序 需要用到JVM
JDK Java Developer’s Kit Java 开发工具
JDK集成了JRE 也就是说
JDK=JRE(运行环境)+开发工具
JER=JVM+加核心类库(提前写好的代码)
JVM=Java Virtual MachIne (Java虚拟机,用来运行Java程序的)
如果仅仅只是运行程序,只需要装JRE
如果要开发 必须要安装JDK(JDK里面包含JRE)
1安装JDK
官网
下载Java8(目前最新的应该已经Java14或者12了但是目前最稳定和最广泛的是Java8)
下载的版本选择
下载完之后安装,注意没有必要装两个JRE
安装时避免中文目录,注意安装完成之后没有桌面图标的,如何验证是否安装成功,打开命令窗口 win+R
输入javac,,如果说不是内部或外部命令,那就是没有配置环境变量
你要注意的是,它是在C:WindowsSystem32 下找不到javac命令,那我们去安装目录D盘好了
这样就找到了
但是这样太麻烦了,每次得cd这么多层,我们希望在任意目录下找到javac
然后下一步就是配置环境变量
配置环境变量Win7和Win10稍微有些不同,下面以Win10和Win7分别演示,以Win10为主
编辑系统环境变量即可,非常简单,注意我们要改的是系统环境变量
win7里面切记不要把path全部删掉,直接通过分号在后面加,Win10比较简单,因为帮你换了行,直接加就行
配置完成之后,重启cmd即可,然后直接就能找到我们的javac编译程序了
可以查看一下版本,,目前我市安装的java8
然后做几个练习题,由于我有C#j基础,所以就不从最基础语法开始讲了,基本的语法很简单,不需要赘述
不报错说明编译通过,注意java里面字符编码是有要求的,必须是
ANSI码,如果不是可能会报错,可以通过notPad++自动转换
然后运行看一下
不报错说明编译通过,注意java里面字符编码是有要求的,必须是
ANSI码,如果不是可能会报错,可以通过notPad++自动转换
编译通过之后再运行
下面说几个注意事项
char数据类型,去细品,不是你想象中的那样哦
最后最重要的就是练习题了,不管学了什么都要去做大量的练习才能记得牢固,如果需要练习题,可以私信,我可以发给你
至此JavaSE基础环境安装入门已经告一段落,后续持续更新,大家一起交流,一起进步
/*public class Test1{public static void main(String[]args){System.out.println("![](img1.jpg)");}}*//*## 第一题
* 按步骤编写代码,效果如图所示:
![](img1.jpg)
* 编写步骤:
1. 定义类 Test12. 定义 main方法3. 控制台输出5行字符串类型常量值4. 控制台输出5行字符类型常量值*//*public class Test1{public static void main(String[]args){System.out.println("善学如春起之苗");System.out.println("不见其增,日有所长");System.out.println("假学如磨刀之石");System.out.println("不见其损,年有所亏");System.out.println("假学如磨刀之石");
System.out.println('J'); System.out.println('A'); System.out.println('V'); System.out.println('A'); System.out.println('!');}}
*//*## 第二题
* 按步骤编写代码,效果如图所示:* 编写步骤: 1. 定义类 Test2 2. 定义 main方法 3. 控制台输出5行整数类型常量值 4. 控制台输出5行小数类型常量值*//* class Test2{ public static void main(String [] args){ System.out.println(5+""); } } */ /*第三题 1. 定义类 Test3 2. 定义 main方法 3. 控制台输出所有布尔类型常量值
*//* class Test3 { public static void main(String[] args) { // 控制台输出所有布尔类型常量值 System.out.println(true); System.out.println(false); } } */ /*第四题 1. 定义类 Test4 2. 定义 main方法 3. 定义2个 byte类型变量,分别赋byte类型范围内最大值和最小值,并输出在控制台. 4. 定义2个 short类型变量,分别赋short类型范围内的值,并输出在控制台. 5. 定义2个 int类型变量,分别赋int类型范围内的值,并输出在控制台. 6. 定义2个 long类型变量,分别赋超过int类型范围的值,并输出在控制台. */class Test4{public static void main(String[]args){byte num1=-128;byte num2=127;System.out.println(num1);System.out.println(num2);short s1=-32768;short s2=32767;System.out.println(s1);System.out.println(s2);int num5=-2147483648;int num6=2147483647;System.out.println(num5);System.out.println(num6);long num7=-2147483649L;long num8=2147483649L;System.out.println(num7);System.out.println(num8);}}/*第五题:* 编写步骤: 1. 定义类 Test5 2. 定义 main方法 3. 定义2个 float类型变量,分别赋值,并输出在控制台. 4. 定义2个 double类型变量,分别赋值,并输出在控制台.*/class Test5{ public static void main(String[]args){ //定义2个float类型变量,分别赋值,并输出在控制台 float num1=-3.14F; float num2=3.14F; System.out.println(num1); System.out.println(num2); } } /* 第六题:1. 定义类 Test62. 定义 main方法3. 定义5个 char类型变量,分别赋值,并输出在控制台.4. 定义2个 boolean类型变量,分别赋值,并输出在控制台. */ class Test6{ public static void main(String[]args){ char char1=1; char char2=2; char char3='3'; char char4=4; char char5='5'; System.out.println(char1); System.out.println(char2); System.out.println(char3); System.out.println(char4); System.out.println(char5); boolean bool1=true; boolean bool2=false; System.out.println(bool1+" "+bool2); } } class Test6_1{ public static void main(String[]args){ char char1='9'; char char2='j'; char char3='a'; char char4=' '; char char5='@'; System.out.println(char1); System.out.println(char2); System.out.println(char3); System.out.println(char4); System.out.println(char5); boolean bool1=true; boolean bool2=false; System.out.println(bool1+" "+bool2); } } /*第七题 1. 定义类 Test7 2. 定义 main方法 3. 定义两个整数变量a,b并赋值 4. 控制台输出变量a,b互换前的值 5. 定义一个第三方变量temp,不赋值 6. 利用第三方变量temp使a,b的值互换 7. 控制台输出变量a,b互换后的值 */ class Test7{ public static void main(String[] args){ int num1=1; int num2=2; System.out.println(num1); System.out.println(num2); int temp; temp=num1; num1=num2; num2=temp; System.out.println(num1); System.out.println(num2); } } /*第八题 1. 定义类 Test8 2. 定义 main方法 3. 定义2个int类型变量x、y,x赋值为100,y赋值为200 4. 定义新变量add,保存变量x,y的和并打印到控制台 5. 定义新变量sub,保存变量x,y的差并打印到控制台 6. 定义新变量mul,保存变量x,y的积并打印到控制台 7. 定义新变量div,保存变量x,y的商并打印到控制台 */ class Test8{ public static void main(String[]args){ int x=100; int y=200; int add=x+y; System.out.println("x,y的和:"+add); int sub=x-y; System.out.println("x,y的差:"+sub); int mul=x*y; System.out.println("x,y的积:"+mul); int div=x/y; System.out.println("x,y的商:"+div); } } /* 第九题 1. 定义类 Test9 2. 定义 main方法 3. 定义2个double类型变量x、y,x赋值为100.8,y赋值为20.6 4. 定义新变量add,保存变量x,y的和并打印到控制台 5. 定义新变量sub,保存变量x,y的差并打印到控制台 6. 定义新变量mul,保存变量x,y的积并打印到控制台 7. 定义新变量div,保存变量x,y的商并打印到控制台 - 开发提示:观察小数类型数值运算后的结果. 小数运算经常出现精度丢失的问题,不建议使用基本类型运算. */ class Test9{ public static void main(String[]args){ double x=100.8; double y=20.6; int add=(int)(x+y); double add2=x+y; System.out.println("x,y的和:"+add); System.out.println("x,y的和:"+add2); } } /*第十题 1. 定义类 Test10 2. 定义 main方法 3. 定义byte类型变量,并赋值为10,不换行输出类型说明,换行输出变量值。 4. 定义short类型变量,并赋值为100,不换行输出类型说明,换行输出变量值。 5. 定义int类型变量,并赋值为1000,不换行输出类型说明,换行输出变量值。 6. 定义long类型变量,并赋值为10000,不换行输出类型说明,换行输出变量值。 7. 定义float类型变量,并赋值为100000.0,不换行输出类型说明,换行输出变量值。 8. 定义double类型变量,并赋值为1000000.0,不换行输出类型说明,换行输出变量值。 9. 定义char类型变量,并赋值为'Z',不换行输出类型说明,换行输出变量值。 10. 定义boolean类型变量,并赋值为false,不换行输出类型说明,换行输出变量值。 - 开发提示:不换行的输出 ```java System.out.print("整数类型-byte:"); // 去掉ln ,输出内容后,没有换行 System.out.println(10);// 带有ln,输出内容后,带有换行 ``` */ class Test10{ public static void main(String[]args){ byte b=10; System.out.print("整数类型(字节数据类型)-byte:"); System.out.println(b); short s = 100; System.out.print("整数类型-short:"); System.out.println(s); int i = 1000; System.out.print("整数类型-int:"); System.out.println(i);float f=10000.0F;System.out.print("小数类型-float");System.out.println(f);char c='z';System.out.print("字符类型-char:");System.out.println(c);boolean bo=false;System.out.print("布尔类型-boolean:");System.out.println(bo); } }