今日内容

  • Java语言背景介绍
  • Java开发环境搭建 (必掌握[配置])
  • HelloWorld案例 (必掌握[练习])

  • 注释,关键字,常量,数据类型,变量,标识符
  • 类型转换

1. Java语言发展史

  • Java语言是由谁, 在哪家公司开发的?
 Java语言是由 【詹姆斯高斯林】 在Sun公司研发出来,后来被Oracle公司所收购了。
  • Java语言的发展史?
1995年Sun公司发布Java1.0版本
1997年发布Java 1.1版本
1998年发布Java 1.2版本
2000年发布Java 1.3版本
2002年发布Java 1.4版本
2004年发布Java 5.0版本       -> Java语言发展的里程碑
2006年发布Java 6.0版本
2009年Oracle甲骨文公司收购Sun公司,并于2011发布Java 7.0版本
2014年发布Java 8.0版本       -> 市面上常用的一个版本, 课程中所使用的版本2017年发布Java 9.0版本
2018年3月发布Java 10版本
2018年9月发布Java 11版本
2019年3月发布Java 12版本总结:Java语言与1995年所研发出来的, Java在5版本出现了很多突破性的技术点,市面上使用最多的就是8版本。
  • Java语言的平台划分?
1. JavaSE : Java语言的基础语法,基础班学习的就是JavaSE学习完JavaSe可以实现简单的桌面应用开发 (坦克大战,飞机小游戏)2. JavaME : 是用于嵌入式移动设备的程序开发,例如在早期Nokia手机上的一些应用。JavaME目前已经退出历时舞台了,市面上不再招聘该类程序员。被Android和iOS所取代了。3. JavaEE : 是用于Web网站方向的技术开发Web网站 :网页 :   一套没有逻辑,专门用于展示数据的界面而已。网站 :  基于前台的网页 + 后台的逻辑配合在一起的, 才叫网站

2. Java语言的跨平台原理

  • 什么是跨平台?
平台 : 指的就是操作系统A : WindowsB : LinuxC : MacOS跨平台 : 比如在Windows操作系统中写好的代码,可以直接放到其他操作系统中去运行。
  • 跨平台的原理是?
总结 : 就是因为在不同的操作系统中,都安装了对应版本的JVM虚拟机 (翻译机)。JVM虚拟机是Java程序运行时, 所需要的一个载体(平台)换句话来说, 如果一个操作系统中没有安装JVM虚拟机, 是不能运行Java程序。
  • JVM本身可以跨平台吗?
总结: JVM虚拟机不可以跨平台,可以跨平台的是Java【程序】

3. JRE和JDK

  • 什么是JDK?
  • 什么是JRE?
  • 什么是JVM?
  • 三者之间的关系是什么?
总结 :1. JDK (Java Development Kit) -> Java语言提供给我们开发人员所使用的一套【工具包】javac.exe(编译工具)  java.exe(运行工具)2. JRE (Java Runtime Environment) -> JRE是Java的一个运行时环境,内部包含了Java提供的【核心类库】类 : 一个Java程序的单位类库 : 很多的Java程序 核心类库 : Java已经写好的代码3. JVM : Java的虚拟机,是我们Java程序运行时所依赖的一个载体(平台)4. JDK -> JRE -> JVM结论 :三者既然是包含关系, jdk包含jre, jre包含jvm虚拟机一会再做环境搭建的时候, 只需要安装JDK即可。

4. JDK的下载和安装

  • A:JDK的下载

    • a:官网 http://www.oracle.com
  • B:JDK的安装

    • a:傻瓜式安装

      • 双击安装程序,然后一路next即可(但是不建议)
    • b:安装的推荐方式
      • 安装路径不要有中文或者特殊符号如空格等。
      • 所有和开发相关的软件最好安装目录统一。
        • 举例:我的JDK安装路径

          • D:\Develop\jdk11
  • C:验证安装是否成功

    • a:通过DOS命令,切换到JDK安装的bin目录下。

      • D:\develop\Java\jdk1.9\bin
    • b:然后分别输入javac和java,如果正常显示一些内容,说明安装成功

    目录名称 说明
    bin 该路径下存放了JDK的各种工具命令。javac和java就放在这个目录

    conf 该路径下存放了JDK的相关配置文件
    include 该路径下存放了一些平台特定的头文件
    jmods 该路径下存放了JDK的各种模块
    legal 该路径下存放了JDK各模块的授权文档
    lib 该路径下存放了JDK工具的一些补充JAR包

  • 5分钟时间自己操作一遍

5. 常用的DOS命令

  • 为什么要学习命令提示符?
  • 如何打开命令提示符(DOS窗口)?
总结:1. 为了调用jdk提供给我们的工具2.  A.  Win + r    -> cmd       : 推荐B.  找到要操作的文件夹位置, 在地址栏输入cmd  : 重点推荐好处 : 不需要使用DOS指令进行盘符切换C.   按住shift + 鼠标右键点击 -> ProwerSheel窗口   : 不推荐, 麻烦.
  • 盘符切换
    * 盘符名:
  • 进入文件夹
    * cd 文件夹名称
  • 回退上一级
    * cd…
  • 退出到根路径
    * cd\
  • 查看当前目录下的文件和文件夹
    * dir
  • 清屏
    * cls
  • 退出
    * exit

1. 定义关机shutdown -s -t 秒数shutdown -a2. calc   -> 打开计算机3. notepad -> 打开记事本

6. Path环境变量的配置

  • 为什么要配置环境变量?
  • 如何配置?
总结:1. 配置Path环境变量的目的就是为了能够在任意目录下, 都能访问到jdk提供的工具(javac java) 2.A: JAVA_HOME (推荐方案)计算机右键 - 属性 - 环境变量 在系统变量当中新建一个JAVA_HOME在变量值当中填写jdk的安装目录将JAVA_HOME系统变量所记录的路径引入到Path当中, 并拼接上\bin;%JAVA_HOME%\bin;B:     直接将jdk的bin目录路径复制到path环境变量当中即可. (不推荐)原因 : 就业班需要学习Tomcat服务器,  Tomcat只认识JAVA_HOME
  • 问题:
 环境变量失效问题Win10, 重启电脑之后, 可能就会失效解决方案: 找到环境变量的path, 进入编辑文本, 不需要修改任何内容, 直接确定即可

7. HelloWorld案例

  • Java程序开发运行的基本步骤是什么?
总结:1. 编写代码(源文件阶段)xxx.java现象 : 程序员认识代码, 但是系统不认识代码2. 编译代码(字节码阶段)xxx.class现象 : 程序员看不懂, 但是系统可以识别并执行了.3. 运行代码通过jdk提供的java运行工具, 去运行已经编译好的字节码文件.
  • HelloWorld的基本书写 (暂时记忆)
总结:public class HelloWorld {public static void main(String[] args){System.out.println("HelloWorld");}}
  • 编写前的注意事项
检查文件后缀名是否是隐藏的, 避免创建出来的不是.java文件
  • 10分钟时间练习
    * 使用java程序,在屏幕上输出自己的姓名。

8. HelloWorld案例常见问题

  • 总结
1. 中英文字符问题。Java中的符号都是英文格式的。
2. 大小写问题。Java语言对大小写敏感(区分大小写)。
3. 单词拼写错误, 括号遗漏. 4. 编译命令后的文件名需要带文件后缀。
5. 运行命令后的文件名(类名)不带文件后缀。
  • 请找出下方HelloWorld案例的错误, 并修改
public class Demo {public static void main(String[] args) {System.out.println("HelloWorld");}}

9. Notepad++ 软件的安装和使用

  • Notepad软件安装后的设置
设置 -> 首选项A. 新建 -> 默认语言Java -> 文件编码ANSIB. 自动完成
  • 5分钟时间安装并配置

10. 注释

  • 什么是注释?
  • 注释的分类?
  • HelloWorld说明
总结:1. 注释就是对代码的一种解释, 可以方便我们程序员更好的去阅读代码.2.单行注释 : //多行注释 : /*   注释内容    */------------------文档注释 : /** */       就业班讲解, 用于制作帮助文档的, 还需要用到javadoc这份工具.3.// 定义了一个类, 类名叫Demo1, 加入public的作用是限制类名和文件名保持一致public class Demo1{// 这是程序的入口点, main方法, 也叫主方法, 如果不写, 会出现运行错误public static void main(String[] args){// 指挥程序在控制台输出打印一句话, 打印的内容是双引号中包裹的内容 System.out.println("HelloWorld");}}注意: 注释允许嵌套使用, 但仅限于单行注释注释的内容是不会参与程序的编译和执行的.

11. 关键字

  • 什么是关键字?
  • 关键字有哪些特征?
总结:1.  被Java赋予了特殊涵义的单词class : 该关键字的作用就是用于创建一个类.public : 用于限制类名和文件名保持一致.2.  在高级的编辑器(高级记事本)中会有颜色的高亮显示所有字母全部小写问题: main是关键字吗?答 : 不是关键字, 但是可以理解为比关键字更为关键的一个单词因为JVM虚拟机在执行的时候, 只会查找main这个方法的名字.

12. 常量

  • 什么是常量?
  • 常量的分类有哪些?
总结:1. 在程序的执行过程中, 其值不会发生改变的数据.public class Demo1{public static void main(String[] args){System.out.println("李四");// 当前代码中的常量就是(李四), 因为这段代码运行100次, 李四这个内容都不会改变}*}2.1. 字符串常量 : 被双引号所包裹的内容2. 整数常量 : 所有整数(包括正数还有负数)3. 小数常量 : 所有小数(包括正的和负的)4. 字符常量 : 被单引号括起来的内容, 只能存放单个字符 (多一个少一个都不行) 5. 布尔常量 : 只有两个值    true(真), false(假)System.out.println(true);System.out.println(false);    注意: 布尔常量单独打印没有什么意义, 是为了后续的课程打下了基础如果(age >= 18){System.out.println("可以上网吧了");}--------------------------------------------6. 空常量 : null --> 数组部分讲解(该常量不能直接打印)
  • 10分钟时间练习
    请在屏幕上输出一个学生的信息,包含姓名、性别、年龄、身高、地址。
public class Demo2{/*需求: 姓名、性别、年龄、身高、地址。*/public static void main(String[] args){System.out.println("张三");System.out.println('男');System.out.println(23);System.out.println(180.1);System.out.println("北京市昌平区金燕龙办公楼一层");}}

13. Java中的数据类型

  • 为什么要有数据类型?
  • Java的基本数据类型一共分为哪些?
总结:1. Java是强类型语言, 对于不同的数据都给出了不同的数据类型, 并在内存中分配了不同大小的内存空间JavaScript(弱类型语言) : 所有的数据类型都叫var2. 数据类型的分类:基本数据类型: (四类八种)整数类型:byte        1个字节        -128~127short       2个字节int         4个字节long        8个字节思路: 将要想要表示整数类型, 上来就可以直接使用int, 如果int装不下了, 换成long就行了.浮点类型:float(单精度)      4个字节double(双精度)     8个字节思路 : 以后要想定义小数, 全都是double双精度, 运算的数据更加精确字符类型: char                2个字节            0~65535布尔类型:boolean             1个字节            true  false引用数据类型 : 后面讲注意:数值的取值范围跟字节占比大小不一定相关数据类型从小到大//TODO: byte - short - int  - long - float - double问题: 为什么float占4个字节, 取值范围却要比8个字节的long还要大呢??System.out.println(Float.MAX_VALUE - Long.MAX_VALUE);原因: 底层的二进制存储结构不同   (了解)重点记 :所有整数默认都是(int)类型               System.out.println(10);所有小数默认都是(double)类型           System.out.println(10.0);

14. 变量

  • 什么是变量?
  • 变量的格式是?
  • 变量的作用?
总结:1. 变量就是在程序的执行过程中, 其值可以发生改变的数据从内存角度的理解 : 变量就是内存中的一块空间, 空间中记录着[不断发生改变的常量]从生活角度的理解 : 变量就好比是超市中, 商品的标签2. 数据类型 变量名 = 初始化值;数据类型 : 可以对变量所记录的数据, 进行[限制]限制存储整数, 限制存储小数...变量名 : 自己起的名字初始化值 : 常量byte a = 10;总结: 今后定义整数类型变量的时候, 先用int, 如果int装不下了, 用long, 定义long类型变量的时候需要加入L的标识.今后定义小数类型变量的时候, 先用double, 非要用float的话, 需要加入F的标识.3. 就是用来记录不断发生改变的常量.
  • 变量的扩展讲解:
1. 变量可以先定义, 再赋值.
2. 一条语句可以定义n个变量.public class Demo2_Var{/*1. 变量可以先定义, 再赋值.2. 一条语句可以定义n个变量.*/public static void main(String[] args){// 需求: 定义一个整数类型的变量, 表示成绩// 数据类型 变量名 = 初始化值;double score;     // 这是声明了一个变量, 名字叫做socrescore = 92.5;       // 对变量进行赋值.System.out.println(score);// 一条语句可以定义n个变量, 中间需要以逗号进行分割int a,b,c;a = 10;b = 20;c = 30;System.out.println(a);System.out.println(b);System.out.println(c);}}
  • 10分钟练习: 请分别定义byte、short、int、double、char以及boolean这6种类型的变量,并将值输出到屏幕上。

15. 变量的注意事项

  • 总结:
1. 变量定义的注意事项:变量名不允许重复定义.int a = 10;int a = 20;     // 这句话就会出现编译错误.2. 变量使用的注意事项:变量的作用域范围, 仅在它所在的大括号中有效.public class Demo3_Var{/*变量的作用域范围, 仅在它所在的大括号中有效.*/public static void main(String[] args){{int a = 10;// 变量a就会在内存中释放掉, 消失了}int a = 30;System.out.println(a);}}3. 变量使用的注意事项:变量使用之前, 必须完成赋值.
  • 细节:
1. 定义long类型的变量, 需要加入L的标识
2. 定义float类型的变量, 需要加入F的标识

16. 标识符

  • 什么是标识符?
  • 标识符的组成规则?
总结:1. 自己起的名自己给类, 变量, 方法, 接口.. 起的名字2. 26个英文字母大小写都可以数字0-9_ $建议 : 自己起名字的时候, 要做到见名知意int age = 18;3. 标识符组成的注意事项A. 数字不能开头B. 不能使用关键字命名C. 中间不能以空格分隔.目前定义标识符需要做到 : 见名知意int age = 18;标识符的命名规范 (江湖规矩)小驼峰式命名:变量名、方法名首字母小写,从第二个单词开始每个单词的首字母大写。大驼峰式命名:类名每个单词的首字母都大写。另外,标识符的命名最好可以做到见名知意 例如:username、studentNumber等

17. 类型转换

  • 类型转换的分类有?
  • (隐式)转换指的是?
  • (强制)转换指的是?
总结:-------------------必须掌握的基本知识-----------------------1. 隐式转换 : 将小的数据类型, 赋值给大的数据类型可以直接赋值.隐式转换又称之为自动类型提升, 就是将小的数据类型自动的提升为大的数据类型int i = 10;double d = i;System.out.println(d);       // 10.02. 强制转换 : 将大的数据类型, 给小的数据类型赋值, 不能直接赋值, 需要加入强制转换符理解: 一个8升的油, 装入4升的容器当中, 可能会存在损失精度的问题. (洒了)double d = 12.3;int num = (int)d;          System.out.println(num);    // 12       损失精度强转的格式: 数据类型 变量名 = (被转换[后]的数据类型) 要转换的值;建议:今后在做数据计算的时候, 尽量减少强转的使用, 因为有可能会损失精度.
  • 面试题

    问题: 下面的程序是否有问题,如果有问题,请指出并说明理由(必须掌握!!!)

      byte b1 = 3;byte b2 = 4;byte b3 = b1 + b2;错误原因: 因为所有整数默认都是int类型, 所以b1和b2相加的时候, 会先将自己提升为int类型两个int相加的结果还是int, 将int结果赋值给byte, 必须加入强转解决方案: byte b3 = (byte)(b1 + b2);byte b = 3 + 4;   // 这句话不会出现编译错误// 原因是3和4是两个常量, Java有常量优化机制, 在编译的时候就会将3和4计算出一个结果// 并自动判断结果是否在byte的取值范围内.double d = 20;System.out.println(d);    // 20.0;long l = 10;           // 这里不存在编译错误, 因为10默认是int类型, 小的给大的赋值, 可以直接赋值System.out.println(l);long l2 = 12345678998765432L;
    

18. 今日作业支撑

  • 字符串的+号串联

今日目标

能够说出Java语言的跨平台原理
能够独立下载并安装JDK
能够独立配置path环境变量
能够独立编写HelloWorld案例并编译执行
能够说出Java中的8种基本数据类型
能够定义基本数据类型的变量并使用变量名输出
能够说出标识符的命名规则
能够说出基本数据类型之间相互转换的规则

我的奋斗之黑马第一天相关推荐

  1. 黑马程序员,黑马论坛------'Android25期,毕业46天,100%全部就业,平均薪水8210元!

    来源:黑马程序员,黑马论坛 Android25期,毕业46天,100%全部就业,平均薪水8210元! 班级名称:黑马android25期 毕业时间:2月24日 总人数:70人 班      歌:< ...

  2. 会说话,减少奋斗30年

    虽然我已经工作两年了,并且在工作中一直都很上进,可是这篇文章对我现在依然很受用,希望大家用心阅读,或许对你有帮助.. ....切记,,,,会说话,减少奋斗30年 第一:不要认为停留在心灵的舒适区域内是 ...

  3. 黑马程序员-我的入学笔记1-关于C#.net基础

    ---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net ...

  4. 放飞航天梦 抒写奋斗情

    放飞航天梦 抒写奋斗情 新年第一天,"元旦京港澳天宫对话"活动中,正在天宫空间站执行任务的神舟十三号乘组与来自北京.香港和澳门的青年学生共话载人航天,畅谈青春梦想. "您 ...

  5. 黑马Javaweb.1.1Junit单元测试

    黑马第一天学习 今日内容 Junit单元测试: 测试分类: Junit使用:白盒测试 今日内容 1.1Junit单元测试 1.2.反射 1.3.注解 Junit单元测试: 测试分类: 1.黑盒测试:不 ...

  6. 会说话,少奋斗30年

    虽然我已经工作两年了,并且在工作中一直都很上进,可是这篇文章对我现在依然很受用,希望大家用心阅读,或许对你有帮助. (引自杨潇君 ) ....切记,,,,会说话,减少奋斗30年 第一:不要认为停留在心 ...

  7. 【转载】徐小平techCrunch演讲:创业者要找到跟你同生共死的伙伴!

    本文转载自微信, 地址:http://mp.weixin.qq.com/s?__biz=MjM5NDk5MTA0MQ==&mid=200587915&idx=1&sn=05dd ...

  8. web端自动化测试1--selenium基础

    文章目录 一.自动化测试相关知识 1 什么是自动化测试 2 为什么进行自动化测试 3 自动化测试的分类 一.自动化功能测试: 二.性能测试 4 web自动化条件和使用范围 使用自动化的前提条件 使用自 ...

  9. 高一下学期计算机,高一下学期自我评价

    高一下学期自我评价 相关内容: 大学的日子总是过得很快,你必须要牢牢的把握住它,不要浪费了自己的青春时光.下面第一范文网小编给大家分享一些大学自我评价范文,希望能够给大家一些帮助.大学学期自我评价范文 ...

最新文章

  1. 深度学习中的反向卷积
  2. ubuntu分屏软件_ubuntu14.04终端分屏terminator的安装使用与配置
  3. redhat 服务器 安装mysql_Linux服务器安装mysql
  4. HP DL360 G7安装esxi 6.0
  5. springboot加入com.fasterxml.jackson.core-jackson-databind依赖后报错Error creating bean with name ‘requestM
  6. dubbo通信协议之对比
  7. 文件设置索引_Linux文件系统是怎么工作的?
  8. Apache Commons CLI 开发命令行工具示例
  9. 游戏加加导致cpu降频
  10. 2019字节跳动实习面试
  11. 692. Top K Frequent Words
  12. java实现给一个年份,判断其所属生肖年并输出。。。
  13. 微信开通检测无需等待准确高的软件
  14. R语言主成分PCA、因子分析、聚类对地区经济研究分析重庆市经济指标
  15. MessageBox提示框自动关闭
  16. 20222948 2022-2023-2 《网络攻防实践》第4周作业
  17. RuntimeError: CUDA error: an illegal memory access was encountered的解决方法
  18. 夫妻, 是先离开的人幸福,还是后离开的人幸福?
  19. matlab 流固耦合,关于Abaqus在流固耦合方面的应用研究.pdf
  20. Java系列一些小计

热门文章

  1. 计算机系统结构知识总结,计算机基础知识总结
  2. 在vscode中加参数调试-python
  3. java jtextarea边框_java swing中的JTextArea边框
  4. 微信“防拉黑”功能上线太实用了
  5. 【学习笔记】dij 费用流 + 势能函数
  6. Akaban操作系统(3)-----不按套路出牌的开发
  7. Unity中用第三方手部模型替换Leapmotion手部模型教程
  8. 阿里云虚拟主机Nginx配置
  9. LRUCache简单实现
  10. 怎么扫描同网段mac地址linux,如何快速收集局域网内的IP+MAC信息?用这个扫描器分分钟搞定!!!...