初始化

2018.6.13 Java语言基础复习总结

点点圈 提交于 2020-03-21 20:03:17
Java语言基础与面向对象编程实践 第一章 初识Java 1.1机器语言 机器语言是指一台计算机全部的指令集合。机器语言室友0和1组成的二进制数,是一串串由0和1组成的指令序列,可将这些指令序列交给计算机执行。 1.2汇编语言 负责把汇编语言翻译成二进制的机器语言,这种翻译程序就是汇编程序。 1.3高级语言 1954年第一个完全脱离机器硬件的高级语言FORTRAN诞生 1.3.1C语言 是一种计算机程序设计语言,它既有高级语言的特点,又具有汇编语言的特点。 1.3.2 C++语言 是具有面向对象特性的C语言,面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。通过面向对象的方式,将现实世界的事物抽象成类和对象,帮助我们实现对现实世界的抽象与建模。 1.3.3 C#语言 是一种面向对象的运行于.NET Framework之上的高级程序设计语言。C#与Java很相似(单一继承、接口、编译成中间代码在运行) 1.4 SQL语言 结构化查询语言(Structured Query Language,SQL)是一种数据库查询和编程的语言。用于存取数据库以及查询、更新和管理关系数据库系统 1.5 Java的诞生 ·1995年Sun推出的Java只是一种语言 ·JDK包括两个部分:运行环境(JRE)和开发环境(JDK)在运行环境包括了核心API、集成API、用户界面

VS调用python方法

佐手、 提交于 2020-03-21 07:33:21
1、 安装python3.7 2、 Vs2010中配置python: 3、添加头文件:#include <Python.h> 4、问题:error LNK2001: 无法解析的外部符号 __imp__Py_Initialize@0 原因: 由于Python版本和项目编译版本不匹配导致这个问题,本文出错的原因是 解决: 1. 使用 Python x86版本,VS项目更改为Win32,包含目录及库目录一律为Python x86,可正常编译 2. 使用 Python x64版本,通过配置管理器,在活动解决方案平台中新建X64平台,包含目录及库目录一律为Python x64,可正常编译 5、问题:error MSB6006:"CL.exe"已退出,代码为5 解决:在更改VC++目录时,改每个目录要注意把下面的“从父级或项目默认设置继承”勾选上。 VS调用python常用接口: void Py_Initialize(void) 初始化Python解释器,如果初始化失败,继续下面的调用会出现各种错误,可惜的是此函数没有返回值来判断是否初始化成功,如果失败会导致致命错误。 int Py_IsInitialized(void) 检查是否已经进行了初始化,如果返回0,表示没有进行过初始化。 void Py_Finalize() 反初始化Python解释器,包括子解释器

C++的多态性

南楼画角 提交于 2020-03-21 06:53:17
1.静态多态 (1)函数重载 (2)操作符重载 2.动态多态 继承,虚函数 实现机制: 以下摘自于 http://blog.csdn.net/zyq0335/article/details/7657465 1 什么是多态? 多态性可以简单的概括为“1个接口,多种方法”,在程序运行的过程中才决定调用的机制 程序实现上是这样,通过父类指针调用子类的函数,可以让父类指针有多种形态。 2 实现机制 举一个例子: #include <iostream.h> class animal { public: void sleep() { cout<<"animal sleep"<<endl; } void breathe() { cout<<"animal breathe"<<endl; } }; class fish:public animal { public: void breathe() { cout<<"fish bubble"<<endl; } }; void main() { fish fh; animal *pAn=&fh; pAn->breathe(); } 答案是输出:animal breathe 结果分析: 1从编译的角度 C++编译器在编译的时候,要确定每个对象调用的函数的地址,这称为早期绑定(early binding),当我们将fish类的对象fh的地址赋给pAn时,C

可移动磁盘在磁盘管理中显示没有初始化恢复数据法子

◇◆丶佛笑我妖孽 提交于 2020-03-21 06:43:13
问题描述: 磁盘没有初始化是因为0号扇区损坏,导致可移动硬盘分区表读取不出来,从而可移动硬盘出现磁盘没有初始化。 工具/软件:极限数据恢复软件 步骤1:软件打开后,直接双击需要恢复的磁盘。 步骤2:等待程序扫描完成大概需要几分钟到半个小时。 步骤3:软件扫描到资料后,软件会将扫描到的盘列出来。 步骤4:将要恢复的文件选中,右击选择《复制选中的文件》,程序会将打钩的文件拷贝出来。 步骤5:最后一步只需坐等软件将资料拷贝完成就可以了 。 注意事项1:想要恢复磁盘没有初始化需要注意,在数据寻回之前,不要重建新的分区。 注意事项2:磁盘没有初始化找回出来的文件需要暂时保存到其它盘里。 来源: 51CTO 作者: 啊aens 链接: https://blog.51cto.com/13383471/2480591

基于STM32和W5500的Modbus TCP通讯

試著忘記壹切 提交于 2020-03-21 05:10:59
在最近的一个项目中需要实现Modbus TCP通讯,而选用的硬件平台则是STM32F103和W5500,软件平台则选用IAR EWAR6.4来实现。 1、移植千的准备工作 为了实现Modbus TCP通讯首先需要下载W5500的驱动源码,可以到WIZnet的官网下载: http://wizwiki.net/wiki/doku.php?id=products:w5500:driver 下载下来的压缩包,解压后如下图: 需要将ethernet文件夹拷贝到我们的项目目录中: 并在IAR的项目下添加相关的文件和路径,主要是socket.c、w5500.c、wizchip_.conf.c三个文件。这三个文件分别实现socket、硬件驱动及相关通讯配置功能,具体可以查看相应的源码级手册。 并在如下图所示的项目选项设置中添加Ethernet和Ethernet\W5500目录。 2、移植过程和代码编写 在完成以上工作后就可以开始真正地移植工作了。具体步骤如下: 硬件配置及初始化。 以太网通讯配置的初始化。 实现具体的通讯过程。 2.1、硬件的配置及初始化 由于W5500通过SPI接口与STM32通讯,所以硬件配置和初始化是非常简单的,与W5500实际上没有关系,使一些通用的操作。事实上就是STM32F103的SPI接口初始化的过程,需要实现RCC、GPIO以及SPI的初始化就可以了

数组、字符串和指针

感情迁移 提交于 2020-03-21 01:28:33
1.如何使用数组   数组就是一组名为数组元素或简称元素的内存位置,各个内存位置可以存储相同数据类型的数据项,而我们可以用相同的变量名引用所有内存位置。 2.如何声明和初始化不同类型的数组   声明数组:例如 long height[6];   初始化数组:例如 int engine_size[5] = {200, 250, 300, 350, 400};   C++11标准定义了一种表示一组初始值的新的统一方式,对于用这种方式初始化的所有对象,这些初始值都是相同的,包括标准模板库容器和数组。   例如:int value[]{2,3,4}; 有了这种语法,=操作符就是不必要的。 3.如何对数组使用基于范围的for循环   例如: double temperatures[] = {65.5, 68.0, 75.0, 77.5, 76.4, 73.8, 80.1};       double sum = 0.0;       int count = 0;       for(double t : temperatures){         sum += t;         ++count;       }       double average = sum/count;   还可以使用auto关键字来编写该循环:     for(auto temperature :

我的第一篇题解

六眼飞鱼酱① 提交于 2020-03-21 01:10:29
人生第一次写题解 更好阅读体验,请点击 这里 简单分析题目之后,发现这个题就是要我们求原数列中有多少等差子数列。 观察了数据范围之后发现,本题目给出了最大高度的范围。要知道给出数据范围的量是 很有可能 出现在正解复杂度里的(时间或空间),所以我们尽量往这两个上面靠。由于做题不多,所以我想从仅做过的几个模板题里面借鉴一些思路来解决这个问题。这是本蒟蒻第一篇题解,前面叙述了思路历程,可能前面部分较为啰嗦,想直接看可$AC$做法的可以看后面的部分。 状态定义 由于dp的题目我们可以考虑定义前i个元素中选择组成的序列($LCS$)或者以i为结尾的序列($LIS$)的某个性质的量度(比如$LCS$长度)为$f[i]$,当然也可能由于题目有约束$j$(比如背包中的容量),所以就成了定义$f[i][j]$为我们想要的状态。在本题中,我先是思考$f[i]$为 前i个 元素中选择能够组成的等差数列的个数,因为看起来对于$i-1<i$, $f[i]$的组成的一部分就是$f[i-1]$,也就是前i个元素中必定不选第$i$个元素时的等差子数列数,那么必然包含第i个元素的时候又是怎样一个结果呢?为了计算这个,我们可能要知道$f[i-1]$里面的各种等差子数列的公差细节以及结尾,并根据$a[i]$的情况看能否组成等差数列,与我们之前见到的简洁的dp转移不符,暂时放弃此思路。 有了刚才的经验,我们发现可能定义

C#中REF和OUT的区别

假如想象 提交于 2020-03-20 18:26:58
在C# 中,既可以通过值也可以通过引用传递参数。通过引用传递参数允许函数成员更改参数的值,并保持该更改。若要通过引用传递参数, 可使用ref或out关键字。ref和out这两个关键字都能够提供相似的功效,其作用也很像C中的指针变量。它们的区别是: 1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。 2、使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。 3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。 注:在C#中,方法的参数传递有四种类型:传值(by value),传址(by reference),输出参数(by output),数组参数(by array)。传值参数无需额外的修饰符,传址参数需要修饰符ref,输出参数需要修饰符out,数组参数需要修饰符params。传值参数在方法调用过程中如果改变了参数的值,那么传入方法的参数在方法调用完成以后并不因此而改变,而是保留原来传入时的值。传址参数恰恰相反,如果方法调用过程改变了参数的值,那么传入方法的参数在调用完成以后也随之改变。实际上从名称上我们可以清楚地看出两者的含义--传值参数传递的是调用参数的一份拷贝,而传址参数传递的是调用参数的内存地址,该参数在方法内外指向的是同一个存储位置。

const、static关键字

旧巷老猫 提交于 2020-03-20 08:02:34
3 月,跳不动了?>>> 最近一直在迷惑着这两个关键字,感觉大脑里一片糊涂,特此整理一下: 一、const 1、数据常量,不能修改,必须初始化; 1)非类的数据成员 a、指向const对象的指针(remember) b、const指针(remember) 2)作为类的数据成员 a、必须在构造函数中进行初始化,并且必须在初始化列表中进行初始化; 引申:必须对任何const或引用类型成员以及没有默认构造函数的类类型的额任何成员使用初始化式; 2、const成员函数 作为类的const成员函数,const关键字放在函数声明的后面,在函数定义时,也必须将const关键字放在函数的后面(对于static不是这样)。 1)设计const成员函数主要是不改变对象,正因为这样一个const成员函数不可能再声明为static,因为static加在成员函数上就表明该函数属于类而不属于类对象; 2)const成员函数可以被const对象或者非const对象调用,当被const对象调用时,函数中的this指针就变成了一个指向const对象的const指针(因为this指针本书就是一个const指针,它就是指向调用该函数的对象); 二、static 静态的; 1、对于对象进行修饰 1)对于全局变量加上static关键字后其存储位置没有变,还是在全局存储区,但是缩小了其作用域,生命周期也没有变; 2

[读书笔记]《Effective Java》第10章并发

回眸只為那壹抹淺笑 提交于 2020-03-20 07:44:06
第66条:同步访问共享的可变数据 同步的意义。 正确地使用同步可以保证没有任何方法会看到对象处于不一致的状态中。 进入同步方法或者同步代码块的每个线程,都看到由同一个锁保护的之前所有的修改效果。 Java语言规范保证读或者写一个变量是原子的,除非这个变量的类型为long或者double。 对于原子数据的读取,Java语言规范并不保证一个线程写入的值对于另一个线程将是可见的。 对于共享的数据,即使数据是原子可读写的,也要使用同步。 活动性失败:因为JVM的优化,部分代码无法执行。 1 /** 2 * 共享原子可读写的变量不使用同步访问. 3 * Created by itlivemore on 17-7-1. 4 */ 5 public class StopThread { 6 private static boolean stopThread; 7 8 public static void main(String[] args) throws InterruptedException { 9 Thread backGroundThread = new Thread(new Runnable() { 10 @Override 11 public void run() { 12 int i = 0; 13 while (!stopThread) { 14 System.out