【java】前八章:快速回忆(一)

简介: 【java】前八章:快速回忆

不知不觉,Java已近学了接近两个月。课本也慢慢的翻到了第八章,总感觉什么都没学到,一直想停下来整理一下,那就今天


java前八章复习总结(理论内容)


学的糊里糊涂的,没有代码经验,整理摘抄一些理论的东西,供自己参考,一定会有错误


第一章


简单了解java


java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 [2] 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等


工作原理

由四方面组成:

(1)Java编程语言

(2)Java类文件格式

(3)Java虚拟机

(4)Java应用程序接口

具体一点,百度java简介


搭建java开发环境的基本步骤:


点击->百度搭建java开发环境的基本步骤

自己去看吧;一步一步跟着来还是很简单的。


第二章:基本数据类型及运算


java中一共有8中基本数据类型,并且每种数据类型所占的存储空间是固定的,这种特性也增加了java的可移植性,这一点和c语言c++是不同的,因为java是在**虚拟机(jvm)**上运行的,数据类型和操作系统以及硬件间的适配是通过虚拟机来实现的。


Java中的8中基本数据类型:byte short int long float double boolean char


  • byte short int long都表示有符号数,即最高位是用来表示正负的,0表示正,1表示负;
  • byte占一个字节,表示范围:-~2^7-1 即-128~127
  • short 占两个字节,表示范围:–~2^15-1
  • int 占四个字节 ,表示范围:-~2^31-1
  • long 占八个字节,表示范围:-~2^63-1
  • float 占四个字节, double占八个字节
  • char 占两个字节,一个char代表一个unicode码,范围:0~2^16
  • boolean 占一个字节,只有true和false两个值

其中使用和用法注意和c语言差不多包括但不限于(类型转换与运算、隐式类型转换、显式类型转换)等。


java运算符


第1关:算数运算符


c489eba3a00c04ce5a3d326b66a1aaee_1015db848ec9b14515ae1888d8aabbf8.png


点击查看代码

package step1;
import java.util.Scanner;
public class Cal {
  public static void main(String[] args) {
    /*********start*********/
     System.out.println("请输入第一个整数");
         System.out.println("请输入第二个整数");
     Scanner sc=new Scanner(System.in);
    int a=sc.nextInt();
    int b=sc.nextInt();
    int c,d,e,f,g;
    c=a+b;d=a-b;e=a*b;f=a/b;g=a%b;
    System.out.println("两数相加的结果为:"+c);
    System.out.println("两数相减的结果为:"+d);
    System.out.println("两数相乘的结果为:"+e);
    System.out.println("两数相除的结果为:"+f);
    System.out.println("两数取余数的结果为:"+g);
    /*********end*********/
  }
}


测试用例:

73b3f5651b2bd0472a9d8b5cca199351_f4b27deeb688e69ec6e98eb7ea2c4df6.png


第2关:关系运算符


36566c7a252a7eab30f20fd7fd89a287_d993ad3581bda43580b65cac65464957.png


点击查看代码

package step2;
import java.util.Scanner;
public class Relative {
  public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int a=sc.nextInt();
        int b=sc.nextInt();
        /*********start*********/
    System.out.println("a==b="+(a==b));
    System.out.println("a!=b="+(a!=b));
    System.out.println("a>b="+(a>b));
    System.out.println("a<b="+(a<b));
    System.out.println("b>=a="+(b>=a));
    System.out.println("b<=a="+(b<=a));
    /*********end*********/
  }
}


第一次测试会输入数据:20,34;

需要你的程序输出:

a==b=false
a!=b=true
a>b=false
a<b=true
b>=a=true
b<=a=false      


第3关:逻辑运算符


什么是逻辑运算符

逻辑运算符用于测试两个操作数之间的逻辑关系,且这两个操作数必须是布尔类型的(如关系表达式),得到的结果也是布尔类型的,通过逻辑运算符连接的结果为boolean类型的变量或表达式叫做逻辑表达式


0e685fd8064caa4080281196d17fb076_be51236aefb378eafd463ed9047e8b49.png

我们可以从“投票选举”的角度理解逻辑运算符:

与:要求所有人都投票同意,才能通过某议题;

或:只要求一个人投票同意就可以通过某议题;

非:某人原本投票同意,通过非运算符,可以使其投票无效;

异或:有且只能有一个人投票同意,才可以通过某议题


点击查看代码

package step3;
import java.util.Scanner;
public class testLogic {
  public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
      boolean a=sc.nextBoolean();
        boolean b=sc.nextBoolean();
        boolean c=sc.nextBoolean();     
    /*********start  *********/  
        System.out.println(!a);      
        System.out.println(a && b &&c);          
        System.out.println( c || b );        
        System.out.println( !b  );        
    /*********end  *********/
  }
}


测试说明 按照相关要求编写程序后,我会对你的程序进行测试。 预期输入:

true,false,true

预期输出:

false

false

true

true


第5关:运算符的优先级


05d909ee253b222c6ee4dd556cd102fd_b77c09549a0a04169108c5c00106c315.png


java特有的运算符(instancceof)<不知道是不是特有的,反正对一次见>


双目运算实例运算符,用于判断指定对象是否是一个特定的类型(类类型或接口类型<第5章内容>)例如:

    obj instanceof String
    其中,obj是一对像实例,若obj是string类型实例,则运算结果是true,否则为false。


String,java类,存储字符串类型,第七章


2.5练一练


1.输出java基本数据类型的取值范围

提示:java语言为基本数据类型提供了相应的包装类,分别是Boolean,Byte,Character,Short。Integer,Long,Float,Double。包装类中封装了静态成员变量MIN_VALUE与MAX_VALLUE,分别表达基本的数据类型所能表示的最小值和最大值。


点击查看代码

public class HOME {
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    System.out.println("Boolean最大值:true" +"最小值:flase");    //这里好像不是这么写的,管他呢,知道就行 ,不太会写代码
    System.out.println("byte的取值范围:");
    System.out.println(Byte.MIN_VALUE+"~"+Byte.MAX_VALUE);
    System.out.println("Character的取值范围:");
    System.out.println((int)Character.MIN_VALUE+"~"+(int)Character.MAX_VALUE);
    System.out.println("short的取值范围:");
    System.out.println(Short.MIN_VALUE+"~"+Short.MAX_VALUE);
    System.out.println("Integer的取值范围:");
    System.out.println(Integer.MIN_VALUE+"~"+Integer.MAX_VALUE);
    System.out.println("Long的取值范围:");
    System.out.println(Long.MIN_VALUE+"~"+Long.MAX_VALUE);
    System.out.println("Float的取值范围:");
    System.out.println(Float.MIN_VALUE+"~"+Float.MAX_VALUE);
    System.out.println("Double的取值范围:");
    System.out.println(Double.MIN_VALUE+"~"+Double.MAX_VALUE);
  }
}

第三章:结构化程序设计(面向过程程序化设计)


  • 顺序结构

734afaa53fecf488aab4ca0031b7f7f8_9e2e6de7bf73e179e5fe260adacb5cd3.png

  • 分支结构

c7d7983606e2b66b738885ce761da919_d9420b9e828d00af4e9dc1ddb554db89.png

  • 循环结构

3c15f2ffdc22bf931e43a5a8544eb3e7_766c801890588ea19b3b10578b796361.png

和c一样,不写了

练一练:求π的近似值

点击查看代码

public class HOME4 {
  public static void main(String[] args) {
    System.out.println("PI = ");
    float k = 1;
    float b = 1;
    float c = 0;
    while((1/b)>1e-6) {
      c += k*1/b;
      b +=2;
      k = -k;
    }
    System.out.println(4*c);
  }
}


第四章:数组


了解并学会使用下图所有内容即可

5b8e7d5f9d5b2abaa8e9f9f09402abc5_7e4a533ffedd89b989c20f6cc09701a6.png

具体在这Java基础语法(六)——数组的定义与使用,,非常具体 c语言同样适用



相关文章
|
6月前
|
Java 开发者
那些年,我们追过的Java多态——回忆篇
【6月更文挑战第17天】重温Java多态,它激发了初学者对面向对象编程的热情。多态展示了代码的灵活性和可扩展性,通过抽象和接口使设计更高效。在实践中,如GUI事件处理和游戏开发,多态广泛应用。随着时间的推移,理解加深,多态被视为反映现实多样性的编程哲学。对初学者,它是探索编程世界的钥匙,不应惧怕困惑,应多实践,享受与计算机对话的乐趣。多态,是编程旅程中宝贵的财富和成长见证。
31 0
|
Java
【java】前八章:快速回忆(三)
【java】前八章:快速回忆
99 0
|
存储 Java API
【java】前八章:快速回忆(二)
【java】前八章:快速回忆
93 0
|
Java Windows
Java 将照片转化为回忆中的照片,琉璃般的岁月 | Java工具类
Java 将照片转化为回忆中的照片,琉璃般的岁月 | Java工具类
Java 将照片转化为回忆中的照片,琉璃般的岁月 | Java工具类
|
SQL 算法 Java
Java生产填坑经历之全面回忆
屏幕快照 2018-07-30 下午4.01.49.png 生产填坑的经历为什么要称之为全面回忆呢,因为恰巧笔者之前看了一部科幻电影,名字就叫《全面回忆》Total Recall,该片于2012年10月20日在中国上映,豆瓣评分7.0。
1367 0
|
3天前
|
Java
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者
|
5天前
|
安全 Java Kotlin
Java多线程——synchronized、volatile 保障可见性
Java多线程中,`synchronized` 和 `volatile` 关键字用于保障可见性。`synchronized` 保证原子性、可见性和有序性,通过锁机制确保线程安全;`volatile` 仅保证可见性和有序性,不保证原子性。代码示例展示了如何使用 `synchronized` 和 `volatile` 解决主线程无法感知子线程修改共享变量的问题。总结:`volatile` 确保不同线程对共享变量操作的可见性,使一个线程修改后,其他线程能立即看到最新值。
|
5天前
|
消息中间件 缓存 安全
Java多线程是什么
Java多线程简介:本文介绍了Java中常见的线程池类型,包括`newCachedThreadPool`(适用于短期异步任务)、`newFixedThreadPool`(适用于固定数量的长期任务)、`newScheduledThreadPool`(支持定时和周期性任务)以及`newSingleThreadExecutor`(保证任务顺序执行)。同时,文章还讲解了Java中的锁机制,如`synchronized`关键字、CAS操作及其实现方式,并详细描述了可重入锁`ReentrantLock`和读写锁`ReadWriteLock`的工作原理与应用场景。
|
5天前
|
安全 Java 编译器
深入理解Java中synchronized三种使用方式:助您写出线程安全的代码
`synchronized` 是 Java 中的关键字,用于实现线程同步,确保多个线程互斥访问共享资源。它通过内置的监视器锁机制,防止多个线程同时执行被 `synchronized` 修饰的方法或代码块。`synchronized` 可以修饰非静态方法、静态方法和代码块,分别锁定实例对象、类对象或指定的对象。其底层原理基于 JVM 的指令和对象的监视器,JDK 1.6 后引入了偏向锁、轻量级锁等优化措施,提高了性能。
22 3
|
5天前
|
存储 安全 Java
Java多线程编程秘籍:各种方案一网打尽,不要错过!
Java 中实现多线程的方式主要有四种:继承 Thread 类、实现 Runnable 接口、实现 Callable 接口和使用线程池。每种方式各有优缺点,适用于不同的场景。继承 Thread 类最简单,实现 Runnable 接口更灵活,Callable 接口支持返回结果,线程池则便于管理和复用线程。实际应用中可根据需求选择合适的方式。此外,还介绍了多线程相关的常见面试问题及答案,涵盖线程概念、线程安全、线程池等知识点。
65 2