Java基础(一)

基础知识:计算机语言、进制算法、算法特征 总共有三个语言 机器语言 101010 优点:可以直接被机器执行,速度快 缺点:阅读性差,难以编写和维护 汇编语言 利用助记符来进行程序的编写,执行时需要将助记符转化为机器代码交由硬件执行。 高级语言 面向操作系统编程,高级语言转化为操作系统能识别的代码,称为翻译。 翻译有两种:编译,解释。 编译性语言,操作系统直接执行,速度快,缺点,不能跨平台,无法保证安全性。 解释语言,借助第三方应用程序解释执行,执行速度低于编译性语言,但可以保证安全性,也可以跨平台使用。 取整求余法 10进制 左余下商 5 135 阅读详情

程序设计基础

06.16 java基础第一天
本文是参照老师的PPT做的一个笔记及总结

目标

  • 了解软件,程序与计算机语言的关系
  • 了解程序设计
  • 了解程序开发的过程
  • 了解程序开发中常见的错误类型

什么是程序

计算机程序(Computer program),也称为软件(software),简称程序(Program)是指一组指示计算机或其他具有信息处理能力装置每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。就跟我们日常生活中做饭一样,一道菜的完成需要从买菜,洗菜,炒菜,出锅等步骤完成。
程序:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合,通过程序实现人机对话的过程


进制转换

什么是二进制

二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。 [ 百度百科 ]

特点

优点

数字装置简单可靠,所用元件少;
只有两个数码0和1,因此它的每一位数都可用任何具有两个不同稳定状态的元件来表示;
基本运算规则简单,运算操作方便。

缺点

用二进制表示一个数时,位数多。因此实际使用中多采用送入数字系统前用十进制,送入机器后再转换成二进制数,让数字系统进行运算,运算结束后再将二进制转换为十进制供人们阅读。

采用原因
  1. 技术实现简单,计算机是由逻辑电路组成,逻辑电路通常只有两个状态,开关的接通与断开,这两种状态正好可以用“1”和“0”表示。
  2. 简化运算规则:两个二进制数和、积运算组合各有三种,运算规则简单,有利于简化计算机内部结构,提高运算速度。
  3. 适合逻辑运算:逻辑代数是逻辑运算的理论依据,二进制只有两个数码,正好与逻辑代数中的“真”和“假”相吻合。
  4. 易于进行转换,二进制与十进制数易于互相转换。
  5. 用二进制表示数据具有抗干扰能力强,可靠性高等优点。因为每位数据只有高低两个状态,当受到一定程度的干扰时,仍能可靠地分辨出它是高还是低。
为什么不采用电压高低来模拟十进制

因为电阻受热后会发生改变,导致电压不稳,造成存储的数据不确定性。


代码实现十进制转二进制
/**
 * @author     Code.Ai (Email: Code.Ai@outlook.com)
 * @link       http://blog.youkuaiyun.com/codeai
 * @date       2015-06-16 16:17:32
 * @version    0.1
 * @describe   用于十进制转二进制的类
 */

class toBinary {
    //定义用于连接余数的字符串。
    private static String s = "";
    public static void IntToBinary(int num){
        //当num等于1的时候,是最后一位数。
        while(num >= 1){
            s = num % 2 + s;
            num = num / 2;
        }
        System.out.println(s);
    }
}
public class toBinaryTest{
    public static void main(String[] args){
        //用十进制129测试一下这个类
        toBinary.IntToBinary(129);
    }
}

程序,软件和计算机语言的关系

  • 可以被计算机连续执行的指令集合称为计算机程序
  • 软件是为了完成某些特定功能而编写的一到多个程序文件的集合
  • 计算机语言是人们发明的可以和计算机进行沟通交流的一种工具

计算机语言的分类

  • 机器语言
    -计算机唯一能接受和执行的语言
    -由二进制组成
    -每一串二进制称为一条指令,一条指令规定了计算机执行的一个动作
    -一台计算机所能懂的指令的全体,叫做这个主计算机的指令系统
    -不同型号的计算机的指令系统不同
    特点
    1. 编写出来的程序全部都是由0和1组成‘
    2. 计算机可以直接识别。
    3. 机器语言对不同型号的计算机一般不同,所以又被称为面向机器的语言
      缺点
      • 指令难以记忆。
      • 代码实现复杂,开发周期长
      • 不便于推广,交流,合作。
      • 严重的依赖具体的计算机,可移植性差,重用性差。
  • 汇编语言
    -用助记符表示指令功能的计算机语言
    -汇编语言编写的代码计算机无法直接识别

  • 高级语言
    -与自然语言现金并为计算机所接受和执行的计算机语言


翻译程序

计算机并不能直接地接受和执行用高级语言编写的源程序,源程序在输入计算机时,通过“翻译程序”翻译成机器语言形式的目标程序,计算机才能识别和执行。
翻译分成了两种形式

  • 编译
    -编译型语言的首先将源代码编译生成机器语言,再由机器运行机器码(二进制)。像C/C++等都是编译型语言。
  • 解释
    -解释性语言在运行程序的时候才翻译,比如解释性java语言,专门有一个解释器能够直接执行java程序,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。

算法

算法:解决问题的具体方法和步骤
例如:
计算长方形的面积
1.接收用户输入的长方形长度和宽度两个值;
2.判断长度和宽度的值是否大于零;
3.如果大于零,将长度和宽度两个值相乘得到面积,否则显示输入错误;
4.显示面积。

算法的基本特征

有穷性:一个算法必须在执行有限个操作步骤后终止。
确定性:算法中每一步的含义必须是确切的,不可出现任何二义性。
有效性:算法中的每一步操作都应该能有效执行,一个不可执行的操作是无效的。例如,一个数被0除的操作就是无效的,应当避免这种操作。
有零个或多个输入:这里的输入是指在算法开始之前所需要的初始数据。这些输入的多少取决于特定的问题。
有一个或多个输出:所谓输出是指与输入有某种特定关系的量,在一个完整的算法中至少会有一个输出。例如,要计算从1累加到100,如果这个程序没有输出结果,那么它将变得毫无意义。


程序设计的五个步骤

  • 分析
    • 清楚业务流程(做什么)
    • 清楚输入输出要求(已知什么&要得到什么)
    • 清楚开发期限
  • 设计
    • 优秀的程序在开发前以及开发中,都要精心设计
    • 对于程序员而言,最重要的是确立算法。(怎么做)
    • 在编程之前,应该先设计一下。试图不遵循设计而编写程序,就好像没有房屋平面图就建造房屋,我们无法确定最终会做成什么样子。
  • 编码实现
    • 编写源代码
    • 将原代码编译成字节码
    • 让计算机运行我们的程序
  • 调试
    • 程序中最易出现的几种不同类型错误是语法错误、逻辑错误和运行错误。
  • 维护

用java实现猜数字

第一种

/**
 * @author     Code.Ai (Email: Code.Ai@outlook.com)
 * @link       http://blog.youkuaiyun.com/codeai
 * @date       2015-06-16 21:43:05
 *
 * @describe   猜数字 用户给出的数字跟电脑随机给出的数字对比,
 *             知道猜中为止。最后给出猜数的次数。
 */
import java.util.Scanner;

class GuessNumber{
    public static void main(String[] args) {
        int count = 0;
        int num = (int)(Math.random()*100)+1;
        System.out.println(num);
        Scanner sc = new Scanner(System.in);
        int user ;
        while(true){
            System.out.println("请输入你猜的数字");
            user = sc.nextInt();
            count++;
                if(num > user) {
                    System.out.println("小了");
                }else if(num < user){
                    System.out.println("大了");
                }else{
                    System.out.println("猜中了");
                    break ;
                }
        }
        if(count <= 5)
            System.out.println("天才猜了 "+ count+ " 次");
        else
            System.out.println("笨蛋猜了 "+ count+ " 次");
    }
}

第二种

/**
 * @author     Code.Ai (Email: Code.Ai@outlook.com)
 * @link       http://blog.youkuaiyun.com/codeai
 * @date       2015-06-16 22:20:26
 * @describe   猜数字改进版 让计算机帮我们猜数字
 *             实现:1.随机给出一个1到100的数字
 *                   2.定义一个数组,里面存放从1到100的数字
 *                   3.在数组中用二分法查找这个值
 */

class GuessNumber2 {
    //二分法查找法(折半查找)
    public static int checkNumber(int[] arr, int a ) {
        //low指向数组的低位
        int low = 0;
        //指向数组的中间
        int middle;
        //hight指向数组的高位
        int hight = arr.length - 1;
        //次数
        int count = 0;
        //当指向低位的low大于指向高位的hight时,说明
        while(low <= hight) {
            count++;
            middle = (low + hight) / 2;
            if(a > arr[middle]){
                System.out.println("第 "+count+" 次查找的数字为 "+arr[middle]);
                //如果计算机找出的值比随机值小,就应该在数组的后半部分去查找。
                low = middle + 1;
            }

            else if(a < arr[middle]) {
                System.out.println("第 "+count+" 次查找的数字为 "+arr[middle]);
                //如果找出的值比随机数大,则在数组的前半部找。
                hight = middle - 1 ;
            }

            //如果arr[middle] == a ,则找到了随机数。
            else {
                System.out.println("查找了 "+ count +" 次");
                return arr[middle];
            }
        }
        return -1 ;
    }
}
public class GuessNumberTest {
    public static void main(String[] args) {
        //给出一个1到100的随机数
        int a = (int)(Math.random() * 100) + 1;
        System.out.println("计算机随机给出的值:" + a);
        //定义一个数组,存放1到100的数字
        int[] arr = new int[100];
        for(int i = 0 ;i < arr.length ;i++) {
            arr[i] = i + 1;
            //System.out.println(arr[i]);
        }
        int value = GuessNumber2.checkNumber(arr,a);
        if ( value != -1)
               System.out.println("计算机猜到随机数的值= "+ value );
          else
               System.out.println("未猜到");

    }
}
【Java基础一】 1.JDK(Java Development kit)开发者工具包,在Oracle官网下载(link2.LTS(Long-Term Support) Version 有JDK 8、11、1721。3.验证安装成功与否:cmd中输入java -version 、javac -version看版本号。4.JDK中最重要的两个命令程序 :javac:编译工具 ,java:执行工具一般简称IDEA,在代码错误提醒,智能代码补全等多方面表现的都非常优秀,是进行ava开发时,很多企业首选的开发工具。 阅读详情

相关推荐

光耦合MOSFET(Optocoupled MOSFET,简称OCMOS)

光耦合MOSFET(Optocoupled MOSFET,简称OCMOS)是一种将光电耦合器和MOSFET结合在一起的器件,用于实现电气隔离和信号传输。选择合适的光耦合MOSFET时,还需要考虑具体应用的需求和环境条件,以确保最佳性能和可靠性。- 最大输出电流和电压:确保所选型号能够满足电路的最大电流和电压需求。- 最大输出电流和电压:确保所选型号能够满足电路的最大电流和电压需求。- 隔离电压:根据应用环境的电气隔离要求选择合适的隔离电压。- 隔离电压:根据应用环境的电气隔离要求选择合适的隔离电压。

eydj2008的专栏 1725

算法的五大特征

输入 输出 有穷性 确定性 可行性

qiaohengdaxia的博客 376

同物种,不同版本之间的坐标转化

是最常用的工具,如果有可用的链文件,这通常是最便捷的方法。CrossMap是一个功能强大的替代工具,支持多种文件格式和物种。自定义生成链文件适用于没有现成资源的情况,虽然复杂一些,但可以满足特定需求。Ensembl 和 Gramene提供的工具适用于支持的物种,尤其在植物基因组领域可能更具优势。选择合适的方法取决于你正在处理的物种、基因组版本以及现有的资源。

qq_40256654的博客 1853

JAVA--AI编程助手【代码智能补全工具】盘点,让AI提高你的编程效率

近几年,随着人工智能的迅速发展,AI在各行各业都有所应用。 特别是近两年,面向开发者的AI开发工具也是层出不穷,如GitHub Copilot、Codota、TabNine、国内的阿里云Cosy、AIXcoder。 这些AI编程助手增强了IDE的代码提示和自动补全功能,能极大的提高开发效率 个人推荐使用阿里云Cosy的离线版本,给出的代码提示比较正确、合理,并提供强大的代码搜索功能。 其它AI编程助手,要么收费,要么需要联网,要么使用本地版本时需要消耗较多的内存和CPU。......

penriver的博客 6681

深入解析路科验证V0实验lab1:SV接口与时钟块实战

本文深入解析了路科验证V0实验Lab1的核心内容,重点阐述了SystemVerilog接口与时钟块在验证环境搭建中的关键作用。通过拆解router_io接口设计、时钟块同步机制及程序块封装,详细讲解了如何构建稳定可靠的验证通信基础,并提供了复位时序分析与常见调试技巧,为后续复杂验证打下坚实基础。

peach的博客 430

Linux 命令之 locale -- 设置和显示程序运行的语言环境

文章目录命令介绍locale 设置规则使用详解(一)查看当前 locale 设置(二)查看当前系统所有可用 locale(三)设置系统的 locale 命令介绍 locale 是 Linux 系统中多语言环境的设置接口,在 Linux 中,使用 locale 命令来设置和显示程序运行的语言环境,locale 会根据计算机用户所使用的语言,所在国家或者地区,以及当地的文化传统定义一个软件运行时的语言环境。 通过 locale 来设置程序运行的不同语言环境,locale 由ANSI C提供支持。locale 的

liaowenxiong的博客 3万+

[渝粤教育] 南阳理工学院 大学计算机基础 参考 资料

教育 -大学计算机基础-章节资料考试资料-南阳理工学院【】 第一章单元测验 1、【单选题】大学计算机中所要学习的计算思维是指( )。 A、计算机相关的知识 B、算法与设计技巧 C、知识与技巧的结合 D、蕴含在计算科学知识背后的具有贯通性和联想性的内容 参考资料【 】 2、【单选题】自动计算需要解决的基本问题是( )。 A、数据和计算规则的表示 B、数据的表示 C、数据和计算规则的表示、自动存储和计算规则的自动执行 D、数据和计算规则的表示与自动存储 参考资料【 】 3、【单选题】计算机器的基

渝粤题库 608

HUAWEI华为荣耀MagicBook MateBook B D E X 13 14 16 笔记本MateStation台式机原装Win10出厂Windows11系统

HUAWEI华为MateBookX原装出厂系统恢复原厂系统,型号:MACHC-WAE9LP、EUL-W29P、MACHR-W19L、MACHR-W29、MACHD-WFE9、MRGF-16、MACHR-W19BL、MACHD-WFE9Q、WT-W19、Mach-W19、Mach-W29、WT-W09、WT-W19、MACH-W29等。HUAWEI华为MateBookE原装出厂系统恢复原厂系统,型号:PAK-AL09、GK-W7X、GK-G58、GK-W76、DRC-W76等。

QQ17855069的博客 17万+

数据结构-算法

一个例子 计算1到100的前n项和 第一种算法 int i,sum=0,n=100; for(i=1;i<=n;i++){ { sum=sum+i; } printf("%d",sum); } 第二种算法 ((1+100)+(2+99)+…+(100+1))/2=(101*100)/2 int sum=0,n=100; sum=(1+n)*n/2; printf(%d",s...

不正常人类研究中心 846

迪文屏【0】——从零搭建工程:图片显示、文本变量配置与串口数据交互实战

本文以迪文屏T5L系列为例,详细介绍了从零搭建HMI工程的完整流程。内容涵盖硬件软件准备、DGUS工程创建、背景图片显示、文本变量配置,并重点演示了如何通过串口指令实时修改屏幕数据变量,实现动态交互。旨在帮助开发者快速掌握迪文屏开发的核心步骤与数据交互方法。

alpha的博客 349

USRP B210 运行gnuradio时 FPGA固件版本冲突错误解决方法

事情起源于昨天拿到USRP后开始调试,结果整了一个下午都没解决这个问题。 昨天晚上自己思考了一下,觉得还是版本问题。 首先,uhd_find_devices和uhd_usrp_probe均可以正常运行,没有报错,固件正常加载,序列号也可看到。 teray@teray-X550JK:~$ uhd_find_devices [INFO] [UHD] linux; GNU C++ version 7.5...

斯哈研究所 4243

java基础一

java基础一

weixin_61494821的博客 994

SAM3 LoRA Fine-Tuning|SAM3微调(完全对齐官方训练和配置)

本文介绍了基于官方SAM3模型使用LoRA技术进行图像目标检测与分割微调的项目。项目完全对齐官方训练配置,支持多类别高效微调,且不影响原模型的开放词汇提示能力。微调后模型在航拍图像中对道路、车辆等目标的分割效果显著提升,误检率降低。 项目提供完整的训练和推理流程: 支持双卡并行训练,显存需求大(完整微调需30G+显存) 提供训练脚本和配置文件,可灵活调整参数 包含推理可视化工具,支持与原模型效果对比,内置训练结果分析工具,可生成指标对比图 数据集采用COCO格式。

weixin_46248968的博客 359

《JAVA程序设计基础》实验一

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34307464的博客 316

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

阶段一:Java基础语法

【代码】阶段一:Java基础语法。

m0_44973790的博客 769

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

实验一 Java编程基础

程序运行后要求用户分别输入两个矩阵的内容,然后调用Matrix()方法进行两个矩阵相乘。程序运行后要求用户输入梯形的上边长度(号的数量),然后输入梯形的层数。梯形的每一层比上一层左右边各多一个号,程序输出梯形的形状。程序运行后要求用户输入存款本金、年利率和存款年限,最后程序计算并输出相应年限后存款的总额。为了完成本关任务,你需要掌握:1.Java基础编程,2.数据输入输出。本关任务:编写一个简单Java程序,计算银行年存款的本息。该方法完成存款到期总额的计算。本关任务:编写程序完成矩阵的乘法运算。

2301_80249313的博客 514

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java必备基础一——一文读懂的Java基础中的基础

Java语言基本格式 Java语言基本元素 Java书写规范

Pandafz的博客 2070

JAVA面试篇(一)一JAVA基础

1、抽象类和接口的区别?2、类初始化顺序?3、类初始化顺序?

star_falling的博客 1566

Java 基础语法(一)【详细教程】

Java 作为一门被广泛应用于软件开发各个领域的高级编程语言,以其强大的功能、良好的跨平台性和卓越的安全性,在全球范围内拥有庞大的开发者社区和众多的应用场景。而其基础语法,就如同坚实的基石,为构建复杂且功能强大的 Java 程序奠定了不可或缺的基础。

野生派蒙的博客 1569

一、Java基础

本文介绍Java最基本的语法~~

耀耀zz的博客 596

【一、测试基础】Java基础语法

Java 的用法及注意事项有很多,今天的目标是了解Java基础语法,且能够输出"hello world"

玩转AI,找山茶 1110

Java基础一

不想每次都从当前目录中找该命令,有两种方法 直接在path中添加这个地址 C:\Program Files\Java\jdk1.8.0_211\bin 先创建一个自定义的环境变量 名为JAVA_HOME java的家目录 值为C:\Program Files\Java\jdk1.8.0_211 在path中添加 %JAVA_HOME%\bin %变量名% 表示取值的意思,取值后拼接上 \bin --> C:\Program Files\Java\jdk1.8.0_211\bin 如果以后需要.

qq_44948213的博客 647
上一篇: Java基础(二)
下一篇: Java基础(三)
dong4go
博客等级 码龄12年 5粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值