【JavaSE基础】00-计算机基础及环境搭建

2.1.1基础知识与编程环境 解读信息学奥赛NOI大纲入门组中的基础知识与编程环境 阅读详情

原文写于 2016 年,个人学习笔记,闲来无事,搬运至此,希望于各位有用。主要内容是:Java 开发基础,包括环境变量配置、DOS 命令 13 条、Hello World 程序、Eclipse 基本配置和操作。

Java 开发基础

主要内容:

  • 计算机基础常识
  • Java语言介绍
  • Java 开发环境的搭建
  • Eclipse 开发第一个程序
  • Eclipse 个性配置与基本操作

计算机基础常识

计算机的应用

  • 1、科学计算『第一台计算机的诞生』
  • 2、数据处理『数据:图片、文字、音频等;处理:对数据进行的收集、存储、分类、计算、传输等』
  • 3、自动控制
  • 4、计算机辅助技术
  • 5、人工智能–中医专家诊断系统 模拟明医给患者诊病开方
  • 6、多媒体网络应用
  • 7、计算机网络

计算机硬件是计算机软件运行的基础『物质』。
主要硬件:『CPU、主板、内存、显卡、显示屏等』

计算机软件
主要软件分为两大类:系统软件和应用软件

系统软件(操作系统)应用软件
DOS(Disk Operating System) Windows Unix Linux Mac系统软件自带应用『类似计算器、记事本』
Android IOS WindowsPhone用户自安装应用『QQ、YY、LOL』

P.S.

  • DOS系统是命令行方式操作系统,为了便于用户的操作,后来产生了图形化界面操作的操作系统,也就是Windows系统
  • 系统软件和应用软件都是用计算机语言编写出来的,计算机语言调用底层指令处理数据

软件开发

1、软件是一系列按照特定顺序组织的计算机数据和指令的集合。

  • 数据就是指现实生活中的年龄、姓名等信息
  • 指令就是告诉计算机如何对数据进行处理

2、 软件开发就是借助开发工具与计算机编程语言制作软件。

计算机语言

1、自然语言:人与人之间沟通交流的各种表达符号
2、计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言『C\C++、C#、Java、Python、Object-C…』

人机交互
软件的出现实现了人与计算机之间的更好的交互。

  • 命令行界面(Command Line Interface CLI):通过控制台输入特定的指令,让计算机完成制定操作。需要记忆大量的指令,较为麻烦,像是早期的DOS系统
  • 图形化界面(Graphical User Interface GUI):为了方便用户的简便操作,由CLI逐渐发展而来交互方式。简单直观,易于接受和上手操作,像是由DOS而来Windows系统

Java语言介绍

Java语言是SUN公司(StanfordUniversityNetwork,斯坦福大学网络公司)1995年推出的一门高级编程语言。Java语言是一门面向 Internet 的编程语言。随着Java技术在web方面的不断成熟,Java语言已经成为Web应用程序的首选开发语言。

Java语言是开源『Open Source』,完全面向对象,安全可靠,与平台『操作系统』无关的编程语言。

Java语言的技术架构:

1、JavaSE 标准版:是为开发普通桌面和商务应用程序提供的解决方案。该技术体系是其他两者的基础,可以完成的一些桌面应用程序的开发,比如Java版的扫雷。
2、JavaEE 企业版:是为开发企业环境下的应用程序提供的解决方案。该技术体系中包含的技术如Servlet、Jsp等,主要针对于Web应用程序开发。
3、JavaME 小型版:是为开发电子消费产品和嵌入式设备提供的解决方案。该技术体系主要应用于小型电子消费类产品,如手机中的应用程序等。

Java语言特点

简单性、解释性、面向对象、高性能、分布式长处理、多线程、动态、安全、体系结构中立、开源『Open Source』、跨平台性。

1、 开源『Open Source』:开放源代码
2、 什么是跨平台性?

通过Java语言编写的应用程序可以在不同的操作系统平台中运行。亦即可移植性。一次编写, 到处运行『Write Once, Run Anywhere』

3、跨平台性的原理是什么?

只要在需要运行Java应用程序的操作系统中,先安装一个Java虚拟机(JVM : Java Virtual Machine) 即可,由JVM来调用操作系统底层指令解析、执行Java程序,从而在该操作系统中运行。

因为有了JVM,所以同一个Java程序在各种不同的操作系统中都可以执行。这样就实现了Java程序的跨平台性,也就是说Java语言具有好的可移植性*。

跨平台原理

明确:JAVA语言具有跨平台性,但是JVM不具有跨平台性,在不同的操作系统下具有不同版本的JVM。

C\C++语言编写的程序在Windows系统中可以直接运行,在Linux中则不可以。这是因为Windows系统使用C\C++语言编写的,Windows中内置了C\C++的解析器,所以C\C++可以直接在Windows系统中运行。但Java语言编写的程序如果要在Windows系统中运行,就需要在Windows系统中安装一套能够解析、执行Java程序的软件,也就是JVM( Java虚拟机 )。类似的,在Linux、Mac系统中执行Java语言编写的程序也需要安装各自的系统对应的应用。通过这种方式,就实现了Java语言“一次编译,到处运行”的跨平台性。JVM的作用就是搭建了Java语言编写的程序与操作系统之间的桥梁。

Java开发环境搭建

使用任何一门语言之前必须首先搭建环境。

什么是JRE、JDK

1、 JRE(Java Runtime Environment:Java有运行时环境)

包括Java虚拟机(JVM:Java Virtual Machine)和Java程序所需的核心类库(Java Class Library)。如果想要运行一个开发好的Java程序,计算机中只需要安装JRE就可以了。

2、 JDK(Java Development Kit::Java开发工具包)

JDK提供给Java开发人员使用的,其中主要包含了Java的开发工具以及JRE。所以理论上,安装了JDK就不需要单独安装JRE了。其中的开发工具有编译工具(javac.exe)、打包工具(jar.exe)等。

简而言之:使用JDK开发完成的Java程序交给JRE执行,由JVM保证跨平台性。

为什么JDK中包含一个JRE呢?

开发完成的Java程序,需要执行得出结果以保证程序的正确性。最重要的是:JDK中的开发工具(如javac.exe、jar.exe等)其实都是Java语言编写的应用程序。为了放方便使用才打包成exe文件。如果没有JRE,那么开发工具是没有办法正常执行的。

总结:
JRE = JVM + 类库(Java Class Library)
JDK = JRE + Java开发工具

JDK、JRE、JVM之间关系

JDK的下载和安装

1、下载JDK(Java Development Kit:Java开发工具包)

(1)、访问 www.oracle.com,点击Downloads下的JavaforDevelopers。

(2)、点击JDK下的DOWNLOAD按钮。

P.S.:8u45代表JDK8版本,45代表子版本,u是update(更新)的缩写。

(3)、在下载之前,首先需要接受JDK的许可证协议,然后再点击jdk-8u45-windows-i586.exe(32位)/jdk-8u45-windows-x64.exe(64位)进行下载。

P.S.
Windowsx86对应的是windows32位系统。
Windowsx64对应的是windows64位系统。

2、安装JDK
(1)、双击“jdk-6u21-windows-i586.exe”文件,点击“下一步”。

(2)、继续点击“下一步”。
默认安装目录为“C:\ProgramFiles(x86)\Java\jdk1.6.0_21\”,可以通过“更改”按钮对安装路径进行自定义至":\Java\jdk1.6.0_21" 路径下。

P.S.
安装路径中不要有中文或者特殊符号如空格等,否则后期开发中可能出现一些莫名其妙的错误。

(3)、继续点击“下一步”。

正在安装中…复制文件结束,安装JDK完毕。

(4)、接下来出现的对话框是询问是否安装JRE(Java运行环境),这是可选的,因为JDK中已经包含开发环境和运行环境(JRE)两部分。所以不需要安装,一般情况建议安装,也可以直接点击“取消”按钮。

(5)、点击“关闭”按钮,安装完毕。

P.S.:
JDK无需每次都安装,因为其本身就是绿色版本,可以直接存入U盘,在任何计算机上都可以直接使用。
采用安装的方式使用JDK的好处在于其会在注册表中被注册,当JDK出现新版本,会自动更新

JDK中的命令行工具

1、JDK安装目录下的bin(binary)文件夹是二进制文件所在的目录,其中的exe文件(都是使用java语言编写)都是开发Java程序所需要的命令文件。

P.S.
 这些命令文件并非是图形化方式操作的(双击执行是无效的),而是命令行方式操作的命令文件,所以需要首先打开命令行窗口。

2、打开DOS命令行窗口有两种方式。

(1)、点击"开始"–>“运行”–>“输入’cmd’”–>按下’Enter’键。『直接使用快捷键’Win + R’』
(2)、点击"开始"–>“所有程序”–>“附件”–>“命令提示符”。
(3)、Win7之后,可以在任意文件夹下,使用Shift + 右键菜单–> 点击"在此处打开命令窗口"。

3、进入到JDK安装目录下的bin目录。

4、输入javac(.exe可以不写),出现如下显示,说明JDK已经可以使用了。

命令行简介

常用的 Windows DOS 命令

dir(directory):列出当前目录下所有的文件以及文件夹
md(make directory):创建目录
rd(remove directory):删除目录
cd(change directory):进入指定目录
cd … :退回到上一级目录
cd \ :退回到根目录
del (delete):删除文件或文件夹
cls:清空屏幕内容
exit:退出DOS命令

13个示例轻松掌握常用DOS命令:

(1)、查看D盘下的目录

(2)、查看指定文件夹下的目录使用cd 文件夹名称的时候,输入到一定长度,可是使用Tab键快速补全。

当输入到“Baidu”的时候,使用Tab键补全,获取的是以"Baidu"开头的所有文件夹的第一个(按照字符编码顺序列出所有"Baidu"开头的文件夹)

(3)、通过通配符的方式更方便的进入指定文件夹

P.S.
“cd Baidu*” 命令中的 “*” 是一种通配符『代表一个或多个字符』,如果当前目录中有多个文件夹名称都能匹配,那么会自动进入第一个名称匹配的文件夹中。

(4)、退回上一级目录

(5)、退回到根目录

(6)、在D盘根目录下创建新的文件夹。

P.S.
早期操作计算机用DOS操作,因为需要记忆太多的命令,不利于普及,后期发展成图形界面,通过鼠标点击界面的形式操作计算机,底层实际上运行的依然是DOS命令。

(7)、删除文件夹

(8)、新建文件夹,并在此文件夹下创建一个文件,由于此文件夹非空,删除文件夹失败。『Windows 防止误删除采用的机制』

(9)、只有将文件夹下的所有文件和文件夹删除,才能删除该文件夹

P.S.
del *或del *.*命令表示删除当前目录下的所有文件。
Windows系统删除文件是从内向外删,文件夹内部的文件如果没有完全删除,文件夹删除必定会失败。
使用rd /s 『提示是否确认删除』或rd /q /s『不提示直接删除』。


(10)、输入help命令,可以查询所有命令功能

(11)、输入help命令,查询指定命令功能

(12)、输入cls命令,可以清空当前屏幕内容

(13)、输入exit命令,退出命令行工具!

配置环境变量的两种方式

之前在使用的时候,必须保证已经编写的.java文件必须和javac.exe在同一个目录下才可以正常的编译,这将会导致bin文件夹越来越乱,给bin目录下的文件内容带来了误删除的隐患。

为了能够在DOS命令行窗口中,在任何目录下都可以执行javac命令,就需要将javac.exe命令文件所在目录放在path环境变量中。

原理:
在DOS命令提示符窗口中输入某一个命令后,Windows系统会首先在当前目录下.查找是否有命令可以执行。如果没有,Windows系统就会在path环境变量路径中查找。如果查找到,就会执行该命令。如果还没有找到,那么就会提示如下信息。

1、如何配置环境变量

  • 右击“计算机”–>“属性”。
  • 点击“高级系统配置”–>“高级”选项卡–>“环境变量”
  • 将javac命令文件所在目录的路径放入path路径中,使用英文";"分割。
  • 点击确定。然后,一定要新开一个新的DOS命令行窗口,再输入javac命令,如果出现如下显示,说明path环境变量配置成功。

 P.S.

  • 一定要将 javac 命令文件所在目录的路径放入 path 环境变量的开头。否则,如果计算机上以前已经安装了其他版本的 JDK 并且也已经配置了path 环境变量,那么先执行的 javac 命令就是以前的 JDK 安装目录下的 javac 命令。因为系统是按照 path 路径从头向后搜索各个目录的。
  • 环境变量中的各个路径之间一定要以分号进行分隔。
  • 设置 path 环境变量的时候千万不要删除掉原来的内容。否则,很多程序将无法运行。

P.S.
如果一台计算机上安装了多个版本的JDK,通过 javac-version 可以确定当前使用的 JDK 版本。

2、环境变量配置技巧

(1)、新创建一个环境变量JAVA_HOME记录jdk安装目录的路径

(2)、在 path 环境变量中通过 “%%” 动态的获取 JAVA_HOME 的值即可
通过这种方式,如果 JDK 安装目录改变了,那么只需要修改 JAVA_HOME 环境变量即可,而不用再修改path环境变量。

P.S.
 %JAVA_HOME% 表示动态获取名称为 JAVA_HOME 环境变量的值。

3、环境变量临时配置方式

如果在别人的计算机上进行Java程序的开发,设置path这样的系统环境变量就不太好,那么就可以采用设置临时环境变量的方式(通过DOS命令中set命令完成)。

(1)、用set命令查看本机的所有环境变量的信息。

(2)、用set命令(“set 变量名”)查看具体某一个环境变量的值。

(3)、用set命令(“set 变量名=”)清空一个环境变量的值。

(4)、用set命令(“set变量名=具体值”)给指定环境变量定义具体值。

(5)、想要在原有环境变量值基础上添加新值。

首先,通过“%变量名%”操作符获取到原有环境变量的值。然后,追加上新值,再赋值给该变量名即可。

 P.S.
临时配置环境变量的方式只在当前DOS命令行窗口有效。窗口关闭,配置即消失。

Eclipse IDE

编写运行 Hello World

『开发工具编写好的Java源代码,由javac.exe进行编译,得到的.class字节码文件,交由java.exe解释执行,输出到Console控制台』

(1)、使用Win + R,输入notepad,调用记事本,输入以下代码:

class Demo
{
	public static void main(String[] args)
	{
		System.out.println("Hello World!");
	}
}
  • HelloWorld:代表学习计算机语言的第一个入门小程序。现在泛指接触任何新事物的第一步。
  • class:是 Java 中的关键字,用于定义类,Java 语言的程序代码都需要定义在类中。
  • 关键字:被java语言赋予了特殊含义的单词,高级记事本中具有高亮显示『class、public、static、void』。
  • Demo:为了方便使用这个类,给类自定义的类名。
  • { }:定义该类中代码的范围。
  • main方法的作用在于保证一个类可以独立运行,因为它是程序的入口。
  • System.out.print();语句用于告诉系统输出打印数据,可以将括号中的内容打印在控制台上。通过该语句可以直接在控制台看到 JVM 运行 Java 程序后的结果

(2)、通过 javac 命令对该 java 文件进行编译。

  • 有了java源文件,将其编译成JVM可以识别的文件。
  • 在该源文件目录下,通过javac编译工具对Demo.java文件进行编译。
  • 如果程序没有错误,没有任何提示,就会在当前目录下出现一个Demo.class文件,该文件称为字节码文件,也就是可以执行的java的程序。

(3)、通过 java 命令对生成的 class 文件进行运行。

P.S.:使用 java 命令运行 class 文件,没有必要加上 .class 文件后缀

(4)、javac 命令的作用是对 java 程序进行语法性检查,一旦出错,就会打印出错误信息。

由于System.out.println("hellojava")语句后面缺少分号,报错。根据报错的行数,找到错误的地方,进行修改。然后重编编译,运行。

(5)、java 命令可以启动 JVM,然后找到相应的 class 文件,再寻找程序入口,也就是 main 方法,然后调用该方法执行 java 程序。

常见错误信息–找不到文件

错误可能原因:

  • 文件名写错。
  • 类文件不在当前路径下或者不在 classpath 指定路径下。
  • 后缀名问题。

后缀名问题 查找及解决方案如下:

  • 点击“工具”–>“文件夹选项”–>点击“查看”选项卡,并且勾选掉“隐藏已知文件类型的扩展名”。
  • 然后就可以看到文件真正的后缀名为 txt,所以找不到 Demo.java 文件。只需将修改后缀名为 “.java”,再重新编译、运行即可。

配置classpath环境变量

由于可能频繁执行多个 class 文件,并且多个 class 文件可能存储在不同的目录下,那么每次都在命令提示符窗口中切换目录会相当的麻烦。

classpath 环境变量的作用类似于 path 环境变量,但是它的作用在于告诉JVM 去哪里找到 class 文件。

JVM查找类文件的顺序:

  1. 如果没有配置 classpath 环境变量,JVM 只在当前目录下查找要运行的类文件。
  2. 如果配置了 classpath 环境,JVM 会先在 classpath 环境变量值的目录中查找要运行的类文件。

示例:

1)、在C盘根目录下新创建一个文件夹,命名为 myclass,将 C:\code 目录下的 Demo.class 文件复制到此文件夹下。
copy srcDirectory destDirectory

2)、 将 C:\code文件夹中的源文件 Demo.java 修改为在控制台中打印 “你好,世界”,重新编译,生成 Demo.class。

3)、如果想要执行 C 盘根目录下 myclass 文件夹中的 Demo.class,又不想切换目录,由于JVM 会先在 classpath 环境变量值的目录中查找要运行的类文件,可以通过设置环境变量 classpath 为c:\myclass实现。
set classpath=C:\myclass

示例:

1)、 删除C:\myclass目录下的Demo.class。

del C:\myclass\Demo.class

2)、 在C:\code目录下运行Demo.class文件,报错。 

因为 classpath 环境变量已经被赋值,所以即使在 C:\code目录下存在Demo.class 文件,JVM 也根本不会去查找。

3)、classpath 环境变量值的结尾处如果没有分号,那么 JVM 在 classpath 目录下没有找到要指定的类文件,也不会在当前目录下查找。即使当前目录下有,也不会运行。

4)、classpath 环境变量值的结尾处如果加上分号,那么 JVM 在 classpath 目录下没有找到要指定的类文件,会在当前目录下再查找一次.

示例:

为环境变量 classpath 赋值后加上 “;” 分号,然后在C:\code目录下运行Demo.class 文件,由下图可见,运行成功。

P.S.:建议配置 classpath 环境变量时,值的结尾处不要加分号,如果需要访问当前目录可以用“.”(代表当前目录)表示,这样可读性更好一些。
set classpath=.;%classpath%

Eclipse个性配置与基本操作

Eclipse个性化配置

1)、中文字体太小:窗口(Window)→首选项(Preferences)→常规(General)→外观(Appearance)→颜色和字体(Colors and Font)→基本(Basic)→双击“文本字体(Text Font)”在弹出窗选择“Courier New”。

2)、我喜欢大括号在同一行:首选项→Java→代码样式(CodeStyle)→格式化程序→编辑(Edit)→花括号(braces),都选“下一行”。写一个名字保存。

3)、配置项目的Java编译器版本:项目右键→属性→Java编译器(Compiler)→启用特定于项目的设置,选择相应版本,建议选择1.7以上,后续讲课也默认1.7。

4)、配置java的源代码,方便研究java类库源码、文档:首选项→Java→已安装的JRE→双击JRE→展开rt.jar→源代码链接,选择JDK中的src.zip。

5)、快捷键:Ctrl+shift+F格式化代码(如果没反应可能是和别的软件热键冲突,比如搜狗拼音,在输入法条中点击右键“设置属性”→“按键”→“系统功能快捷键”,看到了吗,把所有都取消吧);Alt+/智能提示;Ctrl+鼠标查看定义。

项目和工作空间

1)、切换工作空间的方法:**退出重启,如果勾选了【将此值用作初始值并且不再询问】,则文件(File)→切换工作空间(switch workspace),从“工作空间”列表中选择(之前打开过的)或者浏览选择工作空间根目录(包含.metadata)。

2)、如何导入别人的项目到工作空间中:**包资源管理器(Package Explorer)→导入(Import)→常规(General)→现有项目到工作空间中(Existing Projects into Workspace),对话框中选中“选择根目录(Select Root Directory)”→【浏览】→选择项目的根目录(包含.project文件)或者WorkSpace,选择要导入的项目即可。

探秘计算机核心:计算机基础概览与编程环境 CPU(中央处理器)是计算机系统的“大脑”,负责接收、处理和执行计算机发出的各种指令。它控制并协调着计算机内部各个部件的工作,是计算机性能的决定性因素。 阅读详情

相关推荐

GESP一级 - 计算机基础与编程环境(1)

算盘是最早出现的计算工具之一,起源于古代,在世界各地都有不同的变体。算盘通过珠子的位置来表示数值,通过移动珠子来进行加减乘除运算。算盘的发明极大地促进了数学和商业的发展。

m0_46192147的博客 1573

day1--java基础编程:计算机基础知识 ,java语言概述,java开发环境搭建,eclipse概述,创建简单java项目,JDK JRE JVM的关系,java开发中的命名规范,编程风格

键盘功能键:要求熟练掌握在键盘上的位置。Tab空格 EnterWindow上下左右PrtSc(PrintScreen)屏幕截图 (按键+ctrl+v到 word文档,全屏)键盘快捷键:要求熟练使用。Ctrl+A 全选Ctrl+C 复制Ctrl+V 粘贴Ctrl+X 剪切Ctrl+Z 撤销Ctrl+Y 反撤销Ctrl+S 保存…Alt+F4 关闭窗口ctrl+shift+Esc 打开任务管理器,可以查看和操作进程。多选: ctrl+鼠标。

aa35434的博客 1202

《JavaSE系列教程》

本专栏内容是为零基础正在学习Java的学习者量身定制的学习路线及方案,本教程字数超20w+,插图超过400+,知识体系极其全面,案例极其丰富。本配备有专门的学习群及学习视频,读者可加学习群与正在学习该阶段的人一同学习,有任何不懂的也可以观看于此教程配套的学习视频。

緑水長流*z 11万+

计算机基础

编程语言是一种人与计算机之间进行沟通的媒介。就是用人类的思维翻译成计算机能够理解和执行命令,将这些指令写入程序形成指令。它是一个通电的设备,又叫做电脑,拥有处理数据、执行指令的能力能够批量处理人类的指令和数据cpu是人的大脑,负责控制全身和计算内存是人的记忆,负责临时存储硬盘是人的笔记本,负责永久存储输入设备是耳朵或眼睛或嘴巴,负责接收外部的信息存入内存输出设备是你的脸部(表情)或者屁股,负责经过处理后输出的结果以上所有的设备都通过总线连接,总线相当于人的神经。

2402_82657845的博客 801

k最近邻算法——电影分类及案例详解

如图3-7所示,若将国际象棋棋盘放在二维直角坐标系中,格子的边长定义为1,坐标的x轴及y轴和棋盘方格平行,原点恰落在某一格的中心点,则王从一个位置走到其他位置需要的步数恰为二个位置的切比雪夫距离,因此切比雪夫距离也称为棋盘距离。关于这里的距离度量,这个电影分类的例子有2个特征,也就是2维的,可以使用我们高中学过的两点距离公式(两点距离公式其实就是欧氏距离在二维空间上的公式,也就是欧氏距离n的值为2的情况,欧氏距离也称为欧几里德距离)来计算距离,如图3-3所示。对数据进行归一化,避免量纲对计算距离的影响。

ZhShy 4558

Allegro 16.6 高级技巧实战:用Region规则和动态间距搞定高密度连接器布局布线

本文深入探讨了Allegro 16.6在高密度连接器布局布线中的高级技巧,重点介绍了Region规则和动态间距属性的应用。通过局部规则覆盖和分层控制,解决0.5mm以下引脚间距的布线难题,提升PCB设计效率和质量。

weixin_30352645的博客 440

JavaSE之基础语法知识点总结

JavaSE之基础语法知识点总结

weixin_44528963的博客 949

【matlab】使用alexnet进行特征提取

1.下载alexnet工具箱 在命令栏输入alexnet,若不报错说明已经安装,若出现错误按照提示去下载工具箱; 下载地址:https://ww2.mathworks.cn/matlabcentral/fileexchange/59133-deep-learning-toolbox-model-for-alexnet-network (1)需要先注册(十分简单),登陆,下载; (2)下载完成之后,...

jingjingliang1995的博客 5845

【JavaSE】之基础语法

Java基础语法介绍,注释,标识符和关键字,数据类型,类型转换,变量与常量,基本运算等~

小新要变强的博客 7565

SimpleFOC STM32实战:基于F103与HAL库,剖析速度环与电流环的协同控制

本文详细介绍了基于STM32F103与HAL库的SimpleFOC实战应用,重点剖析速度闭环控制与电流环的协同工作原理。通过开发环境搭建、参数调试技巧及性能优化方案,帮助开发者高效实现无刷电机精准控制,适用于机器人、无人机等高精度应用场景。

weixin_29170327的博客 476

从零到一:Mapviz实战部署与多源数据可视化全解析

本文详细解析了Mapviz在机器人开发中的实战部署与多源数据可视化应用。从安装配置、卫星地图接入,到GPS轨迹、相机图像与激光雷达点云的融合显示,提供了完整的操作指南。针对ROS1与ROS2环境的选择与迁移给出了明确建议,并分享了坐标系对齐、数据同步等常见问题的避坑方案,帮助开发者高效构建室外机器人的“上帝视角”调试平台。

weixin_29230773的博客 252

JavaSE 基础(环境搭建)

JavaSE 基础 编程:编写程序 软件开发:创造软件 java开发:学习使用java语言进行软件开发 一门编程语言:我们和计算机交流 计算机语言的发展 1、第一代计算机语言:机器语言 0 1 特点:对于人来说, 麻烦,困难; 对于计算机来说,直接能够识别 2、第二代计算机语言:汇编语言 助记符 对于人来说,稍微简单一点点,可是不够,还是比较麻烦; 对于计算机来说,不能直接识别,需要中间的处理过程 3、第三代计算机语言:高级语言 C,C++,Java,Python… 对人来说,更加简单,更加容易学习; 对

qq_43732592的博客 466

智能车图像处理19-进阶篇11--斜入十字补线

这篇文章主要讲述智能车竞赛中如何对于斜入十字进行补线操作。

taiyuezyh的博客 7488

JavaSE基础(一)—— Java环境搭建、IDEA、Java语言

Java语言的产品是JDK(Java Development Kit :Java开发工具包),必须有JDK才能使用Java语言。之前的开发工具文本编辑工具: 记事本 、 UltraEdit 、 EditPlus 、 TextPad 、 NotePad++、sublime.. 存在的问题:编写代码时没有错误提醒、没有智能提示、需要自己进行编译、执行。功能不够强大。集成开发环境( IDE, Integrated Development Environment )

此心光明事上练的博客 878

​非线性分析-增加位移量可能出现下面错误。虽然求解无法在所有时间点完成,但在某些点上仍能够求解部分结果。请参阅“帮助系统”中的故障排除,以了解更多信息详情。由于受约束,规划求解引擎无法收敛

基于收敛状态拆分载荷步‌:在已收敛的载荷步基础上,将未收敛的关键区域拆分为更细的子步,比如在载荷突变点前设置5~10个子步,逐步加载。替换冲突约束为弱约束‌:若存在约束冲突,将刚性约束替换为弱弹簧约束(刚度设为1e-6~1e-4),既限制刚体位移,又不影响结构的变形自由度,命令流:SPRING, NODE, K, 1e-6。部分区域约束完整,但存在未被约束的刚体自由度,或约束类型与大变形/接触逻辑冲突,比如某部件的位移约束在初始阶段有效,但大变形后约束位置脱离实际受力点,导致求解器在该阶段无法收敛。

qq_15963745的博客 145

【YOLO26实战全攻略】10——YOLO26+SAM3实战:从检测到像素级分割的全流程指南(含PCB缺陷检测案例)

本文聚焦YOLO26与SAM3的融合应用,系统讲解“检测+分割”的三种核心模式:YOLO26原生分割(轻量高效)、YOLO26检测+SAM3精细分割(精度极致)、SAM3自动标注+YOLO26蒸馏(低成本冷启动)。从环境搭建、数据集准备、模型训练、性能优化到边缘部署,提供 step-by-step 实操教程,配套完整可运行代码与执行结果。结合虚拟PCB缺陷检测案例,展示像素级缺陷识别与几何参数测量的工业级应用流程。本文兼顾新手入门与进阶提升,注重实用价值,读者可直接参考搭建自己的分割系统。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 625

JavaSE基础-概述

javase学习,资料来源尚硅谷学习资料

qq_47893939的博客 1807

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

JavaSE零基础学习(名词的解释和环境搭建)

JavaSE零基础学习 第一个名词解释:软件 计算机中的软件分为两种,第一种软件为系统软件:如Windows,linux,DOs,数据库(DBMS),第二种软件为应用软件:如Windows下面的扫雷,QQ,迅雷。 java环境的配置: java环境安装链接(这个教程应该已经很详细了,在安装的过程中只要不输入符号打错了理论上是可以装的上去的) 这里仅提示一点,在安装jdk的时候可以不用安装jre,因...

还没入门的程序员的博客 295

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

JavaSE基础

JavaSE基础 Java语言概述 一、计算机语言概述 软件 & 开发 人机交互 & 计算机语言 概述 & 架构 二、JVM Java虚拟机,将字节码解析成具体平台上的机器语言。 三、JRE & JDK JDK包含JRE,JRE包含JVM。 四、JDK 下载与安装 JDK命令行工具 dos命令行工具 五、环境配置 配置 配置技巧 临时配置方...

GoslingBoy的专栏 784

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

JavaSE基础知识

C语言过渡到Java

Eliaukqwe的博客 1940

【JavaSE】之计算机基础

计算机基础知识分享~

小新要变强的博客 8382

JavaSE 基础 - 第1章 Java开发环境的搭建

JavaSE 基础 - 第1章 Java开发环境的搭建写在前面1、常见的DOS命令2、文本编辑快捷键3、计算机编程语言发展史4、Java语言的概述以及Java语言的发展史5、Java语言的特性6、JDK、JRE、JVM三者之间的关系到目前为止,我们接触过的重点术语,总结一下7、对Java的加载与执行的理解8、编写java中的第一个java程序:HelloWorld9、开发第一个java程序:HelloWorld10、到目前为止,一共配置的环境变量11、“java HelloWorld”的执行过程以及原理12

佬涛的博客 1500

第一章 Java环境搭建、IDEA、Java语言

Java是什么?是一门高级编程语言。Java是哪家公司研发的,现在属于哪家公司?sun公司、Oracle公司。Java之父是谁?詹姆斯.高斯林。Java能做什么?基本上什么都可以干,主要做互联网系统的开发。Java有哪些技术平台?JavaSE(标准版)、JavaEE(企业版)、JavaME(小型版)。提示:Java开发环境的准备:JDK简介、安装、常用命令。

Candy5204的博客 2073

java基础知识:计算机基础以及JDK环境搭建

计算机基础 ​ 全称:电子计算机,俗称电脑。由硬件和软件组成。 ​ 硬件有:主板,cpu(中央处理器),内存条,硬盘等组成。 ​ 软件分为:系统软件、应用软件。 ​ 1.系统软件有:操作系统、驱动程序等。 ​ 2.应用软件有:腾讯QQ、抖音、教务管理系统等。 windows常用快捷键 ​ Ctrl+c:复制:(内容复制,文件复制) ​ Ctrl+s:保存 ​ Ctrl+v:粘贴:(...

马尾与发圈 201

JavaSE的基础语法

JavaSE的基础语法 1. 语言的发展 机器语言----->汇编语言------>高级程序设计语言 1.1 机器语言 ***机器语言***是用二进制代码表示的一种机器指指令系统的集合,里边就包含 0 和 1,能被计算机能直接识别和执行。但它们难于辨别和记忆,给整个产业的发展带来了 障碍 每一个计算机只能理解他自己的机器语言。机器语言对于计算机来说就是自然语言 了,由计算机硬件的设计者定义。机器语言通常由数字串组成(终被简化成 01),对于人类来说,机器语言过于繁琐。 1.2 汇编语言 为了编程

qq_43677736的博客 1219

【JavaSE基础】01-Java入门JDK安装Path环境变量设置

Java简介参考百度百科,我这里就长话短说了。Java是一门非常优秀、跨平台的计算机语言Java之父:詹姆斯·高斯林(James Gosling)

m0_46216159的博客 603
上一篇: 【LeetCode】题解- 866. 回文素数
下一篇: 【JavaSE基础】02-面向对象
老坛算粉
博客等级 码龄12年 708粉丝 73原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老坛算粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值