Java从入门到精通06
文章目录
- <center>Java从入门到精通06
- 01==》计算机基础、Java概述、Java开发环境搭建、程序编写、注释、关键字、标识符
- 02==》开发更具idea的使用、计算机内存原理(浅谈)、Java数据类型、数据类型转换、运算符
- [03==》运算符、引用数据类型、流程控制语句中的if、else、if else](https://blog.csdn.net/Novice_anan/article/details/131813343)
- [04==》流程控制while、do while、for循环、嵌套结构、控制循环结构、switch分支结构、一维数组](https://blog.csdn.net/Novice_anan/article/details/131837470)
- 05==》流程控制foreach、深谈数组、多维数组、数据工具Arrays类
- <center>例题
01==》计算机基础、Java概述、Java开发环境搭建、程序编写、注释、关键字、标识符
计算机基础
- 为什么要了解计算机基础?
因为我们要学习Java就得了解一些计算机,我们编程就是写给计算机看的。 - 什么是计算机,计算机发展史
- 计算机的组成
软件部分,硬件部分 - 计算机体系结构
软件在硬件基础上运行 - 常用dos命令
dir 查看当前文件夹内容
cd文件夹名 进入指定文件夹
cd... 返回上一级文件夹
cd\ 退出到磁盘根目录
cls 清屏
Java概述
- Java为啥产生(一个意外)
- Java的发展史
jdk每个版本新增的功能,是的Java日益强壮和完善
Java开发环境搭建
- 什么是Java
编程语言,开发环境 - Java应用邻域
- jdk的下载与安装
- jdk和jre的介绍
- 跨平台特性
得益于jvm虚拟机
HelloWorld
- Java程序介绍
编写的代码即源文件被javac编译器编译为字节码文件,字节码被java解释器解释为机器码,让电脑能够看懂程序意思 - 源代码编写
- 生成字节码文件
- 运行字节码文件
注释,关键字,标识符
- 程序注释
增加程序的可读性,找bug - 关键字
一些已经被Java占用的英文单词,我们不能直接拿过来当作标识符使用 - 标识符
除了关键字意外基本上都是标识符,有特定的组成元素和规则
数据
- 程序概念
程序=数据+概念 - 数据类型
基本数据类型,引用数据类型 - 常量
一些不变的量
02==》开发更具idea的使用、计算机内存原理(浅谈)、Java数据类型、数据类型转换、运算符
开发工具(idea)
- 开发工具简介
- idea安装
- 创建项目和模块
- 编写代码.
- idea项目目录
- idea常用快捷键
计算机内存原理
- 计算机内存单元(字节)
- 什么是进制
- 常见进制
- 进制前缀
- 进制间转换
Java数据类型
- Java数据类型分类
- 基本数据类型
- 常见数据类型
- 定义变量的格式
- 变量的使用注意事项
数据类型转换
- 数据类型转换(小转大直接成功,大转小需要强制转换,且容易损失数据)
- 数据类型转换方式
自动类型转换,强制类型转换 - 数据类型转换原理(了解)
原码反码补码
运算符
- 算数运算符
- 运算赋++,- - 的使用规律
- 赋值运算符
03==》运算符、引用数据类型、流程控制语句中的if、else、if else
运算符
- 比较运算符
- 逻辑运算符
- 三木运算(三元运算)
引用数据类型
- Scanner类
- 随机数Random
流程控制语句
- 选择结构if
- if else
- if …else if…else
04==》流程控制while、do while、for循环、嵌套结构、控制循环结构、switch分支结构、一维数组
流程控制语句
- while循环语句
- do while循环语句
- for循环
- 嵌套循环
- 控制循环结构
break,continue,return
switch选择结构
一维数组
- 理解什么是数组
- 格式化数组
动态格式化,静态格式化 - 数组赋值
- 数组取值
直接取直,赋值取值
05==》流程控制foreach、深谈数组、多维数组、数据工具Arrays类
流程控制foreach
for 的强循环,当想改变数组元素时,切记不要使用foreach
深谈数组
- 内存中的数组
- 数组异常情况
数组越界、指针为空(指针丢失) - 多维数组
数组工具Arrays类
格式与其使用方法
- Arrays.toString(数组名)
- Arrays.sort(数组名)
- Arrays.equals(数组1名,数组2名)
- 数据类型(不确定用var) 新数组名=Arrays.copyOf(被复制的数组名,新数组的长度)
- Arrays.fill(数组名,开始索引(包括),结束索引(不包括),新值)
例题
例题一
编写一个程序HelloWorld,使用dos命令生成字节码文件并运行
参考答案:
程序:
class Test1{
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
执行过程:
1、创建test文件,给文件命名并后缀改为.java
2、在文件根目录路径打开cmd3、使用javac创建字节码文件
4.使用java执行字节码文件
例题二
计算程序应该依次输出数字几,程序如下
public class 计算数字 {
public static void main(String[] args) {
int a=8;
int b=4;
int c=3;
int sum=a-- * b++ - --c + ++a + --c * ++b+a++;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(sum);
}
}
参考答案:
a为9,b为6,c为1,sum为52
例题三
使用循环输出九九乘法表,规格如下图
参考答案:
public class 九九乘法表 {
public static void main(String[] args) {
for (int i=1;i<10;i++){
for (int j=1;j<=i;j++){
System.out.print(i+"✖"+j+"="+i*j+" ");
}
System.out.println();
}
}
}
结果展示:
例题四
使用循环输出等腰三角形,假设一行高度为1,要求等腰三角形的高为5
参考答案:
public class 等腰三角形 {
public static void main(String[] args) {
for (int i=1;i<6;i++){
for (int j=0;j<5-i;j++){
System.out.print(" ");
}
for (int j=1;j<=2*i-1;j++){
System.out.print("*");
}
System.out.println();
}
}
}
例题五
设计一个程序,输入一个年月日,得出那天是那年的第几天。
参考答案:
import java.util.Scanner;
public class 年月日计算是那年的第几天 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int day=0;
System.out.print("请输入年份:");
int a= sc.nextInt();
System.out.print("请输入月份:");
int b= sc.nextInt();
System.out.print("请输入日份:");
int c=sc.nextInt();
int run[]=new int[]{0,31,29,31,30,31,30,31,31,30,31,30,31};
int ping[]=new int[]{0,31,28,31,30,31,30,31,31,30,31,30,31};
if (a%400==0|(a%4==0&a%100!=0)){
for (int i=0;i<b;i++){
day=day+run[i];
}
System.out.println("这是"+a+"年的第"+(c+day)+"天");
}
else {
for (int i=0;i<b;i++){
day=day+ping[i];
}
System.out.println("这是"+a+"年的第"+(c+day)+"天");
}
}
}
例题六
设计一个程序,当你输入一个数时,逆序将其输出
参考答案1:
import java.util.Scanner;
public class 输入一个数时逆序将其输出 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个数:");
String a=new String();
a= sc.next();
for (int i=a.length()-1;i>-1;i--){
System.out.print(a.charAt(i));
}
}
}
参考答案2:
import java.util.Scanner;
public class 输入一个数时逆序将其输出01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个数:");
int num = sc.nextInt();
System.out.print("它的倒序是:");
while (num!=0){
System.out.print(num%10);
num/=10;
}
}
}
例题七
随机生成1~100的数,猜其大小,猜大了猜小了都提示,知道猜中为止
参考答案:
import java.util.Random;
import java.util.Scanner;
public class 猜数字 {
public static void main(String[] args) {
Random random = new Random();
Scanner sc = new Scanner(System.in);
int a= random.nextInt(100)+1;
System.out.print("请输入你猜的数:");
int b= sc.nextInt();
while (a!=b){
if (a>b){
System.out.println("您猜的数小了,请重新输入!");
}else{
System.out.println("您猜的数大了,请重新输入!");
}
System.out.print("请输入新的数:");
b= sc.nextInt();
}
System.out.println("你猜对了!");
}
}
例题八
输入三个数并排序
参考答案傻瓜方法:
import java.util.Scanner;
public class 三数排序 {
public static void main(String[] args) {
System.out.println("请输入三个数:");
Scanner sc= new Scanner(System.in);
int a;int b;int c;
a= sc.nextInt();
b=sc.nextInt();
c= sc.nextInt();
if (a>b){
if(b>c){
System.out.println("三数由小到大排序为:"+c+" "+b+" "+a);
}
else if (a > c)
{
System.out.println("三数由小到大排序为:"+b+" "+c+" "+a);
}
else{
System.out.println("三数由小到大排序为:"+b+" "+a+" "+c);
}
}
else if (a>c){
System.out.println("三数由小到大排序为:"+c+" "+a+" "+b);
}
else if (b>c) {
System.out.println("三数由小到大排序为:"+a+" "+c+" "+b);
}
else {
System.out.println("三数由小到大排序为:"+a+" "+b+" "+c);
}
}
}
参考答案三元运算:
import java.util.Scanner;
public class 三叔排序01 {
public static void main(String[] args) {
System.out.println("请输入三个数:");
Scanner sc= new Scanner(System.in);
int a;int b;int c;
a= sc.nextInt();
b=sc.nextInt();
c= sc.nextInt();
System.out.println("三数由小到大排序为:");
System.out.println(a>b?(b>c?c+" "+b+" "+a:(a>c?b+" "+a+" "+c:b+" "+c+" "+a)):(b>c?(a>c?c+" "+a+" "+b:a+" "+c+" "+b ):a+" "+b+" "+c));
}
}
例题九
输入三个边长,判断能不能组成三角形,若能指出可以组成什么三角形
参考答案:
import java.util.Scanner;
public class 判断三角形 {
public static void main(String[] args) {
System.out.println("请输入三个边长:");
Scanner sc= new Scanner(System.in);
int a= sc.nextInt();
int b=sc.nextInt();
int c= sc.nextInt();
if (a+b>c&&a+c>b&&b+c>a){
if (a>b){
if(b>c){
if (a*a>b*b+c*c){
System.out.println("这三条边可以组成钝角三角形");
}
else if (a*a==b*b+c*c){
System.out.println("这三条边可以组成直角角三角形");
}
else {
System.out.println("这三条边可以组成锐角角三角形");
}
}
else if (a > c)
{
if (a*a>b*b+c*c){
System.out.println("这三条边可以组成钝角三角形");
}
else if (a*a==b*b+c*c){
System.out.println("这三条边可以组成直角角三角形");
}
else {
System.out.println("这三条边可以组成锐角角三角形");
}
}
else{
if (c*c>b*b+a*a){
System.out.println("这三条边可以组成钝角三角形");
}
else if (c*c==b*b+a*a){
System.out.println("这三条边可以组成直角角三角形");
}
else {
System.out.println("这三条边可以组成锐角角三角形");
}
}
}
else if (a>c){
if (b*b>c*c+a*a){
System.out.println("这三条边可以组成钝角三角形");
}
else if (b*b==c*c+a*a){
System.out.println("这三条边可以组成直角角三角形");
}
else {
System.out.println("这三条边可以组成锐角角三角形");
}
}
else if (b>c) {
if (b*b>c*c+a*a){
System.out.println("这三条边可以组成钝角三角形");
}
else if (b*b==c*c+a*a){
System.out.println("这三条边可以组成直角角三角形");
}
else {
System.out.println("这三条边可以组成锐角角三角形");
}
}
else {
if (c*c>b*b+a*a){
System.out.println("这三条边可以组成钝角三角形");
}
else if (c*c==b*b+a*a){
System.out.println("这三条边可以组成直角角三角形");
}
else {
System.out.println("这三条边可以组成锐角角三角形");
}
}
}
else{System.out.println("他不能组成三角形!!!");
}
}
}
我的可能有些繁琐,只是参考答案。