Java 放弃之路

Java 放弃之路

第一章 Java领航员

1.1 编程语言介绍

编程语言介绍

编程是什么?

编写程序. 用键盘, 鼠标勾勒出你想要的应用程序.

编程语言呢? 我们用什么样的语法方式来编写程序.

常见的编程语言: C语言, C++, C#, Java, Python, html, css, js, go语言. sql语言.
C语言: 执行效率比较高. 一般用来做底层驱动或者操作系统.
C++: 游戏的内核. 应用程序.
C#: 微软, 支持的平台是windows. 基于.Netframework的.
Java: 世界第一. toibe排行榜.
Python: 本来是一个脚本语言. 灵活性是所有编程语言都比不了的.
html: 网页, 网站.
css: 让网页更好看.
js: 让网页能动起来.
go语言: 谷歌开发的.
sql语言: 数据库. 数据是软件的根本.
根据运行和开发的过程产生两个分支:
1. 编译型, 一次编译. 到处运行.
   执行效率比较高, 跨平台行比较差.
2. 解释型, 一行一行的解释, 执行.
   执行效率较低. 跨平台性比较好.
3. 混合型, java

1.2 Java简介

Java简介

Java是一门程序开发语言. 1991年由sun公司的James Gosling和他的团队一起开发了一个叫Oak的语言. 在1995年更名为Java. 一直沿用至今.

Java是目前全世界使用人数最多的编程语言. Toibe 排行榜第一. https://www.tiobe.com/tiobe-index/

丰富的开源社区和非常多的开源框架.

国内各大一线公司都在使用Java.

特点:

简单: 针对C++简化了很多

跨平台:

Java 放弃之路_第1张图片

Java 放弃之路_第2张图片
Java 放弃之路_第3张图片

Java相关概念

1. JVM(Java Virtual Machine): java虚拟机, 用来模拟统一的硬件平台环境, 供java程序运行的 一个软件
    
2. JRE(Java Runtime Environment): java运行时环境. 里面包含了JVM和一些java运行时的类库
	是java 程序的运行时环境,包含Jvm和运行时所需的核心类库
    
3. JDK(Java Development Kit): java开发包. 包含JRE和java开发工具包.
    是java程序开发工具包:包含jre和开发人员使用的工具
    其中的开发工具:编辑工具(Javac.exe)和运行工具(java.exe)

1.3 安装JDK

安装JDK是java开发的第一件事儿.

安装过程很简单. 先去官网下载. https://www.oracle.com/index.html
Java 放弃之路_第4张图片

Java 放弃之路_第5张图片
Java 放弃之路_第6张图片
Java 放弃之路_第7张图片
Java 放弃之路_第8张图片

下载完毕之后. 就可以安装了.

安装:

傻瓜式安装,下一步既可

建议:安装路径中不要包含中文和空格,所有的开发最好安装目录统一。
Java 放弃之路_第9张图片
Java 放弃之路_第10张图片
Java 放弃之路_第11张图片
Java 放弃之路_第12张图片
安装完成.

配置环境变量

目录名称和解释
bin	     该路径下存放了JDK的各种工具命令。javac和java就在这个目录
conf 	 该路径下存放了JDK的相关配置文件。
include  该路径下存放了一些平台特定的头文件。
jmods    该路径下存放了JDK的各种模块。
legal    该路径下存放了JDK的各模块的授权文档。
lib      该路径下存放了JDK工具的一些补充JAR包。
其余文件为说明性文档。

命令窗口检查jdk是否安装成功 以及安装的jdk版本号查询

Microsoft Windows [版本 10.0.19042.985]
(c) Microsoft Corporation。保留所有权利。

C:\Windows\system32>java
用法: java [-options] class [args...]
           (执行类)
   或  java [-options] -jar jarfile [args...]
           (执行 jar 文件)
其中选项包括:
    -d32          使用 32 位数据模型 (如果可用)
    -d64          使用 64 位数据模型 (如果可用)
    -server       选择 "server" VM
                  默认 VM 是 server.

    -cp <目录和 zip/jar 文件的类搜索路径>
    -classpath <目录和 zip/jar 文件的类搜索路径>; 分隔的目录, JAR 档案
                  和 ZIP 档案列表, 用于搜索类文件。
    -D<名称>=<>
                  设置系统属性
    -verbose:[class|gc|jni]
                  启用详细输出
    -version      输出产品版本并退出
    -version:<>
                  需要指定的版本才能运行
    -showversion  输出产品版本并继续
    -jre-restrict-search | -no-jre-restrict-search
                  在版本搜索中包括/排除用户专用 JRE
    -? -help      输出此帮助消息
    -X            输出非标准选项的帮助
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  按指定的粒度启用断言
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  禁用具有指定粒度的断言
    -esa | -enablesystemassertions
                  启用系统断言
    -dsa | -disablesystemassertions
                  禁用系统断言
    -agentlib:<libname>[=<选项>]
                  加载本机代理库 <libname>, 例如 -agentlib:hprof
                  另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help
    -agentpath:<pathname>[=<选项>]
                  按完整路径名加载本机代理库
    -javaagent:<jarpath>[=<选项>]
                  加载 Java 编程语言代理, 请参阅 java.lang.instrument
    -splash:<imagepath>
                  使用指定的图像显示启动屏幕
有关详细信息, 请参阅 http://www.oracle.com/technetwork/java/javase/documentation/index.html。

C:\Windows\system32>java -version
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b25)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)

C:\Windows\system32>

常用的DOS命令

操作说明
    盘符名称      盘符切换。D:回车,表示切换到D盘
    dir         查看当前路径下的内容
    cd目录       进入单级目录。 cd harry
    cd ..        回退到上一级目录
    cd目录\目录    进入多级目录
    cls           清屏
    exit         退出命令提示窗口

path 环境变量的配置

1.为什么要配置path环境变量

开发java程序 需要使用JDK提供的开发工具, 而这些工具在JDK的安装目录的bin目录下

为了在开发java的时候能够方便使用javac和java这些命令 我们需要配置path 环境变量。

如何配置path环境变量

具体步骤:

在这里插入图片描述

Java 放弃之路_第13张图片

Java 放弃之路_第14张图片

Java 放弃之路_第15张图片

4步的%JAVA_HOME%\bin 也可以复制jdk的bin目录
例如: D:\Software\Java\bin

验证是否配置成功

在命令提示符输入 javac

备注:如果命令提示符在配置之前打开的,需要关闭命令提示符重新打开测试

Microsoft Windows [版本 10.0.19042.985]
(c) Microsoft Corporation。保留所有权利。

C:\Users\Harry>javac
用法: javac <options> <source files>
其中, 可能的选项包括:
  -g                         生成所有调试信息
  -g:none                    不生成任何调试信息
  -g:{
     lines,vars,source}     只生成某些调试信息
  -nowarn                    不生成任何警告
  -verbose                   输出有关编译器正在执行的操作的消息
  -deprecation               输出使用已过时的 API 的源位置
  -classpath <路径>            指定查找用户类文件和注释处理程序的位置
  -cp <路径>                   指定查找用户类文件和注释处理程序的位置
  -sourcepath <路径>           指定查找输入源文件的位置
  -bootclasspath <路径>        覆盖引导类文件的位置
  -extdirs <目录>              覆盖所安装扩展的位置
  -endorseddirs <目录>         覆盖签名的标准路径的位置
  -proc:{
     none,only}          控制是否执行注释处理和/或编译。
  -processor <class1>[,<class2>,<class3>...] 要运行的注释处理程序的名称; 绕过默认的搜索进程
  -processorpath <路径>        指定查找注释处理程序的位置
  -parameters                生成元数据以用于方法参数的反射
  -d <目录>                    指定放置生成的类文件的位置
  -s <目录>                    指定放置生成的源文件的位置
  -h <目录>                    指定放置生成的本机标头文件的位置
  -implicit:{
     none,class}     指定是否为隐式引用文件生成类文件
  -encoding <编码>             指定源文件使用的字符编码
  -source <发行版>              提供与指定发行版的源兼容性
  -target <发行版>              生成特定 VM 版本的类文件
  -profile <配置文件>            请确保使用的 API 在指定的配置文件中可用
  -version                   版本信息
  -help                      输出标准选项的提要
  -A关键字[=]                  传递给注释处理程序的选项
  -X                         输出非标准选项的提要
  -J<标记>                     直接将 <标记> 传递给运行时系统
  -Werror                    出现警告时终止编译
  @<文件名>                     从文件读取选项和文件名

1.4 第一个Java程序

安装完了. 废了好的的劲. 终于可以编程了.

首先, 我们在D盘下创建一个文件夹. 叫JavaProjects. 然后在JavaProjects文件夹中.创建一个文本文档. 起名为hello.java

如果创建出来的文件看不见后缀名. 需要我们对windows进行简单配置.

首先按一下alt, 然后选择工具. 文件夹选项 查看–勾选文件扩展名。点击确定就可以了

写代码

public class hello{
     
     public static void main(String[] args){
     
         System.out.println("你好 终于写了一个程序了.");
     }
 }

具体操作:

Microsoft Windows [版本 10.0.19042.985]
(c) Microsoft Corporation。保留所有权利。

C:\Users\Harry>javac hello.java
javac: 找不到文件: hello.java
用法: javac <options> <source files>
-help 用于列出可能的选项

C:\Users\Harry>d:

D:\>cd  \JavaProjects

D:\JavaProjects>javac hello.java
hellow.java:3: 错误: 编码GBK的不可映射字符
         System.out.println("浣犲ソ 缁堜簬鍐欎簡涓?涓▼搴忎簡.");
                                        ^
1 个错误

D:\JavaProjects>
hellow.java:3: 错误: 编码GBK的不可映射字符
         System.out.println("浣犲ソ 缁堜簬鍐欎簡涓?涓▼搴忎簡.");
                                        ^
1 个错误

解决办法

解决方法有以下两种:

1、  运行时使用 javac -encoding UTF-8 文件名.java

2、  记事本打开java源文件,另存为选择ANSI编码

备注:类名和文件名要统一

例如给类名hello改为first

具体代码修改

public class first{
     
     public static void main(String[] args){
     
         System.out.println("你好 终于写了一个程序了.");
     }
 }

在运行,哈哈哈,报错了,具体信息如下

D:\JavaProjects>javac -encoding UTF-8 hello.java
hellow.java:1: 错误: 类first是公共的, 应在名为 first.java 的文件中声明
public class first{
     
       ^
1 个错误

D:\JavaProjects>javac -encoding UTF-8 hellow.java

D:\JavaProjects>java hello
你好 终于写了一个程序了.
    
D:\JavaProjects>

1.5 ide的选择和安装使用

IDE(集成开发环境). 是我们学习和工作中编码的工具.

java常见的IDE:

  1. Visual Studio code
  2. Eclipse
  3. Net Beans
  4. IntelliJ IDEA

VS: 微软的IDE. 包罗万象. 啥都能写. 没有VS干不了的

Eclipse: 老牌IDE. 曾经风靡全球. 至今依然活跃在各个程序员的电脑里. 简单方便. 但平台比较老旧. 对新框架支持的不够完美

Net Beans: sun公司提供的开发工具. 但是在国内使用的人不多.

IntelliJ IDEA: 俗称idea. 代码提示非常方便. 多高级框架支持的非常完美. 目前国内年轻一代程序员更喜欢的IDE工具,是用于java语言开发的集成环境,

它是业界公认的目前用于Java开发的最好的工具

集成环境:把代码编写,编译,执行调试多种功能合到一起的开发工具

我们选择使用IDEA来进行学习. 原因很简单. 我还年轻. 我自豪.

下载idea. 去官网下就行了. https://www.jetbrains.com/idea/

下载完毕之后, 直接双击安装即可, 和普通软件安装是一样的.

具体详细操作如下:

Java 放弃之路_第16张图片

选择download
Java 放弃之路_第17张图片

根据自己的需求选择下载的版本型号

下载后直接下一步安装

Java 放弃之路_第18张图片

直接next

Java 放弃之路_第19张图片

根据自己的电脑情况选择安装

安装好了以后可以写代码了,

**写个hello word **

具体操作

1.开始创建项目

Java 放弃之路_第20张图片

2.选择empty project

Java 放弃之路_第21张图片

3.直接下一步

Java 放弃之路_第22张图片

4.修改项目名称和路径位置

Java 放弃之路_第23张图片

5.修改好的项目名称和路径位置

Java 放弃之路_第24张图片

6.直接OK保存

Java 放弃之路_第25张图片

7.选择modules

Java 放弃之路_第26张图片

8.新建module

Java 放弃之路_第27张图片

9.选择jdk的安装目录

Java 放弃之路_第28张图片

Java 放弃之路_第29张图片

10.新建模块名称

Java 放弃之路_第30张图片

11.直接保存

Java 放弃之路_第31张图片

12.创建package

Java 放弃之路_第32张图片

输入包名称

Java 放弃之路_第33张图片

13.创建Java class

Java 放弃之路_第34张图片

输入类名称

Java 放弃之路_第35张图片

14.代码书写

快捷键的使用 psvm 和 sout

psvm

Java 放弃之路_第36张图片

sout

Java 放弃之路_第37张图片

15.开始执行

Java 放弃之路_第38张图片

展示:

Java 放弃之路_第39张图片

1.6 Java中的注释

注释: 对代码进行标注解释. 让人更容易读懂代码

java注释分为三种.

一. 单行注释

// 单行注释. 这一行内容会被jvm运行的时候过滤掉. 

二. 多行注释

 
/* 多行注释 一次注释多行代码 */

三. 文档注释

 
/**  * 文档注释  * 后期可以使用javadoc命令生成api文档  */

常用的是单行注释 // 和 文档注释 /*** /

一般在如下情况可以添加代码注释:

  • l 核心的解决方案
  • l 比较难懂的业务逻辑
  • l 记录代码的存在经历

1.7 变量

变量

为什么要有变量?

假设我现在想计算我的生活开支.

 吃饭: 100+200+120+40 = 460 交通: 10*22 = 220 衣服: 200+400+150 = 750 开支: 460 + 750 + 220 = 1430

这是我们生活中非常常用的一种计算方式.

我们很自然的把每一项开支计算出来. 然后再后面计算总和的时候把前面计算的结果拿过来使用. 那这就是生活中的变量.

变量: 可以发生改变的量. 程序运行过程中产生的中间值. 供后面的程序使用

java中的变量:

数据类型 变量名 = 值;

那这里涉及要一个很麻烦的问题. 数据类型. **什么是数据类型? 计算机是用来存储和处理数据的. **

那我们人对数据是很容易划分的. 比如什么样的是数字, 什么样的是文字. 等等. 但是计算机比较傻. 计算机只认识0,1. 我们写的文字. 数字在计算机里都是01. 那怎么对数据进行划分呢? 什么样的数据可以进行计算呢? 什么样的数据可以进行存储? 这就需要我们对不同的数据进行划分.

常用的基本数据类型.

  1. int

    int主要表示的就是我们生活中使用的整数. 比如, 1, 10086等等.

    int类型可以执行的操作: 加减乘除等. + - /

     int a = 20;
     int b = 10;
     
     int c = a + b;
     System.out.println(“a + b =+ c);
     
     int d = a - b;
     System.out.println(“a - b =+ d);
     
     int e = a  b;
     System.out.println(“a  b =+ e);
     
     int f = a / b;
     System.out.println(“a / b =+ f);
    

double

double表示的是小数. 比如你去菜市场买个黄瓜花费了1.25元. 这就是小数. double类型的数据可以执行的操作和int基本相同. 不同的是. 计算结果一定是小数

 double a = 1.88;
 double b = 1.75;
 
 double c = a + b;
 System.out.println(“a + b =+ c);
 
 double d = a - b;
 System.out.println(“a - b =+ d);
 
 double e = a  b;
 System.out.println(“a * b =+ e);
 
 double f = a / b;
 System.out.println(“a / b =+ f);
  1. String 字符串

    String表示的是字符串. 主要是针对文字进行描述的. 这里要注意的是字符串(String) 的S必须大写

     String s = “近日, 三胖又要制造超大号窜天猴了”; // 双引号括起来的内容就是字符串
     System.out.println(“s =+ s);
    

    字符串可以进行加法运算. 表示字符串的拼接.

     String s1 = “周杰伦”;
     String s2 = “喜欢我”;
     String s3 = s1 + s2;
     System.out.println(s3);
     
     String s4 = s3 +, oh, yeah!;
     System.out.println(s4);
    
  2. boolean 布尔

    **boolean主要表示的是真或者假. **翻译过来就是 对和错. 真命题, 假命题

     boolean a = true;
     boolean b = false;
     
     System.out.println(a);
     System.out.println(b);
     
     
     boolean c = 1 > 2;
     boolean d = 2 > 1;
     System.out.println(c);
     System.out.println(d);
     
     int e = 10; // = 表示赋值
     System.out.println(e == 10); // 判断是否相等要用 ==
     System.out.println(e != 10);
    
    boolean值是用来判断条件的
    

变量的简单应用

 int meals = 100+200+120+40;  // 餐费
 int traffic = 10 * 22;        // 交通费
 int clothing = 200+400+150;  // 服装费
 int all = meals + traffic + clothing;  //总和
 System.out.println("一共花费:" + all); // 一共花费:1430

1.8 用户输入

用户输入
你的程序需要接收外部指令才能决定下一步操作是什么. 比如. 你一个月工资上交给老婆95%. 剩下的是你的零花钱. 此时每个月的收入是不固定的. 零花钱也是不固定的. 需要用户输入工资才能继续执行下一步操作. 此时需要用到用户输入功能.

在java中使用输入功能需要使用Scanner类来完成.

 import java.util.Scanner;  // 使用Scanner必须要导入这个包. 关于导包后面会详解. 暂时先这么写

 public class TestIf {
     
     public static void main(String[] args) {
     

         // 准备一个Scanner对象
         Scanner sc = new Scanner(System.in);
     }
 }

具体操作

 // 获取到用户输入的内容
 Scanner sc = new Scanner(System.in);

 // 你想要什么样的数据?
 // 常用的有
 // 获取到int类型的数据
 int i = sc.nextInt();
 System.out.println("i = " + i);

 // 获取到double类型的数据
 double d = sc.nextDouble();
 System.out.println("d = " + d);

 // 获取到字符串. 以回车为结尾
 String line = sc.nextLine();
 System.out.println("line = " + line);

应用: 计算这个月的零花钱

 Scanner sc = new Scanner(System.in);

 // 提示
 System.out.println("请输入您的工资:");

 // 接收工资
 double salary = sc.nextDouble();

 // 显示工资
 System.out.println("工资是:" + salary);

 // 计算零花钱 
 double pin = salary * (1-0.95);

 // 显示零花钱
 System.out.println("零花钱:" + pin);

1.9 if语句

java条件判断的语句是if语句

语法1(单分支语句):

if(条件){

语句块

}

执行流程: 如果条件为真, 执行语句块

发工资了, 干嘛好呢?

 Scanner sc = new Scanner(System.in);
 System.out.println("请输入你一个月多少零花钱:");
 double pin = sc.nextDouble();
 if(pin > 500){
     
     System.out.println("洗脚城走一波");
 }

 System.out.println("happy");

语法2(双分支语句):

if(条件){

语句块1

} else {

语句块2

}

执行流程: 如果条件为真, 执行语句块1, 否则执行语句块2

 Scanner sc = new Scanner(System.in);
 System.out.println("请输入你一个月多少零花钱:");
 double pin = sc.nextDouble();
 if(pin > 500){
     
     System.out.println("洗脚城走一波");
 } else {
     
     System.out.println("捡一块砖头自己回家蹭");
 }

 System.out.println("happy");

语法3(多分支语句):

if(条件1){

语句块1

} else if (条件2){

语句块2

} else if(条件3){

语句块3

}…. else {

else语句

}

执行流程:

判断条件1是否成立. 如果成立. 执行语句块1, 否则, 如果条件2成立, 执行语句2, 否则, 如果条件3成立, 执行语句3……如果所有条件都不成立. 执行else语句.

 // 输入考试分数
 Scanner sc = new Scanner(System.in);
 int score = sc.nextInt();
 if(score >= 100){
     
     System.out.println("优秀");
 } else if (score >= 80 ){
     
     System.out.println("良好");
 } else if (score >= 70 ){
     
     System.out.println("中等");
 } else if (score >= 60 ){
     
     System.out.println("及格");
 } else {
     
     System.out.println("不及格");
 }

注意: 在if语句中. 如果一个条件成立了. 其他条件就不再判断了. 也不会执行了.

1.10 while循环

相信大家都有打游戏的经历. 玩游戏的时候, 最无聊的工作是什么呢? 没错~ 升级. 做任务. 简直痛苦的不要不要的. 但是呢, 现在几乎每个游戏都有等级系统. 这就让我这种懒人玩家难以忍受. 怎么办呢? 写个脚本~~~ 哈哈. 你想多了. 我可以模拟.

 System.out.println("1. 登录");
 System.out.println("2. 找个怪多的地方");
 System.out.println("3. F1~");
 System.out.println("4. 换个地方继续");
 System.out.println("3. F1~");
 System.out.println("4. 换个地方继续");
 System.out.println("3. F1~");
 System.out.println("4. 换个地方继续");
 System.out.println("3. F1~");
 System.out.println("4. 换个地方继续");
 System.out.println("5. 无聊走了");

哎~ , 游戏都是无聊的. 编程才是我的菜.

在上面的程序中, 不知道你发现没有. 3, 4两步在不停的执行. 如果我就执行3-4次还没什么问题. 这要是刷一个小时~ 你要写多少代码啊. 怎么办呢? 别担心. 在编程的世界里有一种特别扭B的存在. 就是循环. 它可以完美的解决上面代码重复的问题.

java中的循环. 有三种.

  1. for循环
  2. while循环
  3. do…while循环

今天我们主要就讲一种. 叫while循环. 剩下的两种, 我们会在<基础进阶>里继续给大家介绍.

while循环语法:

while(条件){

循环体

}

执行流程: 程序会首先判断条件是否为真, 如果真, 则执行循环体. 然后再次判断条件是否为真.如果真, 继续执行循环体, 直到条件为假, 程序退出.

 while(true){
     
     System.out.println("还我钱");
 }

这样的循环被称为死循环, 那如何能正常的结束循环呢? 改变条件啊

 int a = 0;
 while (a < 10){
     
     System.out.println("还我钱");
     a = a + 1 ;
 }

OK, 接下来. 让我们完成最开始的那个需求,

 System.out.println("1. 登录");
 System.out.println("2. 找个怪多的地方");

 int i = 0;
 while(i < 5){
     
     System.out.println("3. F1~ 来自东方的神秘力量.");
     System.out.println("4. 换个地方继续.");
     i = i + 1; 
 }

 System.out.println("5. 没意思, 走了~");

小试牛刀

首先, 我得先给你们一段代码. 这段代码可以帮我们产生一个随机数

 Random rd = new Random();
 int n = rd.nextInt(100); // n是一个随机数. 范围是[0,99]
 System.out.println(n); // 打印看看

OK. 我们已经可以产生随机数了. 剩下的请看要求:

让用户输入一个数字a, 判断用户输入的a和n之间的关系.

  1. 如果用户猜大了. 提示 猜大了. 继续猜
  2. 如果用户猜小了. 提示 猜小了. 继续猜
  3. 如果用户猜对了. 提示 猜对了. 结束循环

具体操作代码:

// 随机数生成器
 Random rd = new Random();
 // 创建一个整数随机数 [0,99]
 int n = rd.nextInt(100);
 
 Scanner sc = new Scanner(System.in);

 boolean flag = true;
 while(flag == true) {
     
     System.out.println("请输入一个0-99之间的数字:");
     int a = sc.nextInt();
     if(a > n){
     
         System.out.println("猜大了");
     } else if(a < n){
     
         System.out.println("猜小了");
     } else {
     
         System.out.println("猜对了");
         flag = false;
     }
 }

第二章Java基础

更新中…

你可能感兴趣的:(Java)