本文共 12976 字,大约阅读时间需要 43 分钟。
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. 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
下载完毕之后. 就可以安装了.
安装:
傻瓜式安装,下一步既可
建议:安装路径中不要包含中文和空格,所有的开发最好安装目录统一。
安装完成.配置环境变量
目录名称和解释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[:...|: 值> 值> 名称> 目录和> 目录和>] -enableassertions[: ...|: ] 按指定的粒度启用断言 -da[: ...|: ] -disableassertions[: ...|: ] 禁用具有指定粒度的断言 -esa | -enablesystemassertions 启用系统断言 -dsa | -disablesystemassertions 禁用系统断言 -agentlib: [= <选项> ] 加载本机代理库 , 例如 -agentlib:hprof 另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help -agentpath: 选项>[= <选项> ] 按完整路径名加载本机代理库 -javaagent: [= <选项> ] 加载 Java 编程语言代理, 请参阅 java.lang.instrument -splash: 选项>使用指定的图像显示启动屏幕有关详细信息, 请参阅 http://www.oracle.com/technetwork/java/javase/documentation/index.html。C:\Windows\system32>java -versionjava 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环境变量
具体步骤:
在这里插入图片描述
第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
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.javajavac: 找不到文件: hello.java用法: javac
hellow.java:3: 错误: 编码GBK的不可映射字符 System.out.println("浣犲ソ 缁堜簬鍐欎簡涓?涓▼搴忎簡."); ^1 个错误
解决办法
解决方法有以下两种:1、 运行时使用 javac -encoding UTF-8 文件名.java2、 记事本打开java源文件,另存为选择ANSI编码
备注:类名和文件名要统一
例如给类名hello改为first
具体代码修改
public class first{ public static void main(String[] args){ System.out.println("你好 终于写了一个程序了."); } }
在运行,哈哈哈,报错了,具体信息如下
D:\JavaProjects>javac -encoding UTF-8 hello.javahellow.java:1: 错误: 类first是公共的, 应在名为 first.java 的文件中声明public class first{ ^1 个错误D:\JavaProjects>javac -encoding UTF-8 hellow.javaD:\JavaProjects>java hello你好 终于写了一个程序了. D:\JavaProjects>
1.5 ide的选择和安装使用
IDE(集成开发环境). 是我们学习和工作中编码的工具.
java常见的IDE:
- Visual Studio code
- Eclipse
- Net Beans
- IntelliJ IDEA
VS: 微软的IDE. 包罗万象. 啥都能写. 没有VS干不了的
Eclipse: 老牌IDE. 曾经风靡全球. 至今依然活跃在各个程序员的电脑里. 简单方便. 但平台比较老旧. 对新框架支持的不够完美
Net Beans: sun公司提供的开发工具. 但是在国内使用的人不多.
IntelliJ IDEA: 俗称idea. 代码提示非常方便. 多高级框架支持的非常完美. 目前国内年轻一代程序员更喜欢的IDE工具,是用于java语言开发的集成环境,
它是业界公认的目前用于Java开发的最好的工具
集成环境:把代码编写,编译,执行调试多种功能合到一起的开发工具
我们选择使用IDEA来进行学习. 原因很简单. 我还年轻. 我自豪.
下载idea. 去官网下就行了. https://www.jetbrains.com/idea/
下载完毕之后, 直接双击安装即可, 和普通软件安装是一样的.
具体详细操作如下:
选择download
根据自己的需求选择下载的版本型号
下载后直接下一步安装
直接next
根据自己的电脑情况选择安装
安装好了以后可以写代码了,
**写个hello word **
具体操作
1.开始创建项目
2.选择empty project
3.直接下一步
4.修改项目名称和路径位置
5.修改好的项目名称和路径位置
6.直接OK保存
7.选择modules
8.新建module
9.选择jdk的安装目录
10.新建模块名称
11.直接保存
12.创建package
输入包名称
13.创建Java class
输入类名称
14.代码书写
快捷键的使用 psvm 和 sout
psvm
sout
15.开始执行
展示:
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. 那怎么对数据进行划分呢? 什么样的数据可以进行计算呢? 什么样的数据可以进行存储? 这就需要我们对不同的数据进行划分.
常用的基本数据类型.
-
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);
-
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);
-
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中的循环. 有三种.
- for循环
- while循环
- 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之间的关系.
- 如果用户猜大了. 提示 猜大了. 继续猜
- 如果用户猜小了. 提示 猜小了. 继续猜
- 如果用户猜对了. 提示 猜对了. 结束循环
具体操作代码:
// 随机数生成器 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基础
更新中…
转载地址:https://blog.csdn.net/weixin_45523107/article/details/117459189 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!