符号常量

20191021092341

帅比萌擦擦* 提交于 2019-12-23 13:44:03
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1.编写一个程序,把用分钟表示的时间转换成用小时和分钟表示的时 间。使用#define或const创建一个表示60的符号常量或const变量。通过while 循环让用户重复输入值,直到用户输入小于或等于0的值才停止循环。 #include <stdio.h> int main(void) { const int zh=60; int m,h,s; printf("请输入分:\n"); scanf("%d",&m); while(m>0){ h=m/zh; s=m-h*zh; printf("%d小时,%d分钟\n",h,s); scanf("%d",&m); } return 0; } 2.编写一个程序,提示用户输入一个整数,然后打印从该数到比该数大 10的所有整数(例如,用户输入5,则打印5~15的所有整数,包括5和 15)。要求打印的各值之间用一个空格、制表符或换行符分开。 #include <stdio.h> int main(void) { int math,i; printf("请输入一个数:\n"); scanf("%d",&math); for(i=0;i<11;i++){ printf("%d\n",math+i); } return 0; } 3.编写一个程序,提示用户输入天数

虚拟机类加载机制

本秂侑毒 提交于 2019-12-19 07:53:42
一、虚拟机类加载机制   虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是 虚拟机的类加载机制 。 二、类加载时机   类的生命周期:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶段。其中验证、准备、解析3个部分统称为连接(Linking)。      加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班地开始,而解析阶段则不一定:它在某些情况下可以在初始化阶段之后再开始,这是为了支持Java语言的运行时绑定(也称为动态绑定或晚期绑定)。   什么时候开始加载?Java虚拟机规范中并没有进行强制约束,虚拟机的具体实现来自由把握。   虚拟机规范则是严格规定了 有且只有 5种情况必须立即对类进行“初始化”(而加载、验证、准备自然需要在此之前开始):   1)遇到new、getstatic、putstatic或invokestatic这4条字节码指令时,如果类没有进行过初始化,则需要先触发其初始化。生成这4条指令的最常见的Java代码场景是:使用new关键字 实例化对象的时候

使用随机数生成迷宫

爷,独闯天下 提交于 2019-12-17 02:00:11
C++使用随机数生成迷宫 #include<iostream> #include<stdlib.h> #include<iomanip> #include<time.h> using namespace std; #define row 8 //符号常量,语句后面不加分号 #define col 8 void generateBawn(int Array[row][col]) { //专门写一个生成围墙的函数 for (int i = 0; i < col; i++) Array[0][i] = 0; for (int i = 1; i < row - 1; i++) { Array[i][0] = 0; Array[i][col - 1] = 0; } for (int i = 0; i < col; i++) Array[row - 1][i] = 0; /*最后一次改写迷宫,增加出口*/ Array[1][0] = 1; Array[row - 2][col - 1] = 1; } void CreatArray(int array[][col]) { setw(2); int i, j; srand(time(0)); //使用time.h头文件,才能使用time(0)函数 for (i = 0; i < row; i++) { for (j = 0; j < col; j

C++ Primer (一)

二次信任 提交于 2019-12-16 14:24:58
Google C++ Style Guide 书籍:C++ Primer,C++标准程序库,Effective C++,C++ concurrency in Action, Linux多线程服务端编程,The Design and Evolution of C++ C++基础: 1. 读取数量不定的输入数据 while(std::cin >> value) while内返回其左侧运算符,即std:cin, IO库定义了从istream向bool转换的规则,当istream作为条件时,效果是这个流的状态,有效输入(未遇到错误),条件为真,无效输入(读到文件尾,不是value变量类型), 条件为假 键盘输入文件结束符,unix Ctrl+D 2. C++是静态数据类型的语言,它的类型检查发生在编译时,编译器必须知道程序中每一个变量对应的数据类型 3. 避免依赖于实现环境的行为,比如不同机器上int类型的尺寸可能是不一样的 4. 切勿混用带符号类型和无符号类型,计算前带符号数会自动转换为无符号数,如果计算结果为负数会出现错误 5. 'A' 表示单独字符,"A" 表示字符数组A,编译器会在字符数组末尾添加空字符'\0' 6. 列表初始化,如果丢失精度,编译器会报错 7. 内置类型变量在函数内(包括main),如果不初始化是未初始化值,在所有函数外面,如果不初始化会采用默认初始化

Java类加载过程

一世执手 提交于 2019-12-10 23:35:33
目录 一、class文件介绍 1.1 文件结构 1.2 简单示例读取class文件 二、类加载步骤 2.1 类加载过程 三、总结 熟悉的面试题,现在看来也显然易见! 类加载过程已经是老生常谈模式了,我曾在讲解tomcat的书中、在Java基础类书、JVM的书、在Spring框架类的书中、以及各种各样的博客和推文中见过,我虽然看了又忘了,但总体还是有些了解,曾经自以为这不是什么大不了的过程。但时间总会教你做人,看得越多,越觉得以前理解不足。 此笔记记录,虚拟机中Java类加载的过程,各个过程发生的时机,具体做了什么事情,例如,在方法区或者堆分配了哪些内存,创建了哪些常量等。由于Java文件会预先编译,得到class文件,虚拟机的类加载,是对class文件进行的操作,所以不可避免的涉及到class文件的解读,只有知道class文件中有什么,虚拟机才能加载对应的内容。 一、class文件介绍 ​ 不可能完全解读class文件,《虚拟机规范第二版》花了一百多页写class文件,这是class的核心,如果要完全理解,可能还得去复习复习编译原理,词法分析语法分析代码生成之类的。 1.1 文件结构 文件结构定义:u1 = 1个字节,u2 = 2个字节,u4 = 4个字节,u8 = 8个字节; ClassFile { u4 magic; // 魔法数 u2 minor_version; //

C++ 第2章 变量、基本数据类型

老子叫甜甜 提交于 2019-12-06 10:58:31
/* 基本内置类型: 算术类型 空类型 位 / 比特( bit ): 0/1 字节 byte : 8 个二进制位(计算机存储信息的基本单位)即 8 比特 / 位 字 word : 若干个字节组成一个字(可以存放一条计算机指令或数据) 字长 word size : CPU 中每个字包含的二进制的长度(即位数) 位 / 比特 bit: 0/1 --> 字节 byte ( 8 比特 :00000000 ) --> 字 (若干字节) 算术类型: 整型( 包含字符和布尔类型在内)和 浮点型 C++ 算术类型: 类型 含义 最小尺寸 main 返回 0 表示成功 Bool 布尔类型 未定义 真转换成 1 假转换成 0 Char 字符 8 位 即 8 个二进制位 一个字节 Wchar_t 宽字符 16 位 Char16_t Unnicode 字符 16 位 Char32_t Unicode 字符 32 位 Short 短整型 16 Int 整型 16 Long 长整型 32 Long long 长整型 64 Float (6 位有效数) 单精度浮点数 6 位有效数字 Double 双精度浮点数 10 位有效数 Long double 扩展精度浮点数 10 基本的字符类型是 char 一个 char 的空间应该确保可以存放机器基本字符集中任意字符对应的数字值。也就是说, 一个 char

JAVA Class文件和类加载机制

别等时光非礼了梦想. 提交于 2019-12-06 08:44:05
1 class文件结构 Class文件结构是了解虚拟机的重要基础之一,如果想深入的了解虚拟机,Class文件结构是不能不了解的。 Class文件是一组以8位字节为基础单位的二进制流,各项数据项目严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符,如果是超过8位字节以上空间的数据项,则会按照高位在前的方式(Big-Endian)分割成若干个8位字节进行存储。(Big-Endian模式具体可见 详解大端模式和小端模式 ) Class文件中包含了Java虚拟机指令集和符号表以及若干其他辅助信息。 Class文件格式只有两种数据类型:无符号数和表。 无符号数属于基本的数据类型,以u1,u2,u4,u8来分别代表1个字节,2个字节,4个字节和8个字节的无符号数;可用来描述数字,索引引用,数量值或者按照UTF-8编码构成的字符串值。 表是由 多个无符号数或者其他表作为数据项构成的复合数据类型 ,所有表都习惯性地以“_info”结尾。表用于描述由层次关系的复合结构的数据。 整个Class文件本质上就是一张表 class文件的内容中没有任何的分隔符号,所以在上表中的数据项,无论是顺序还是数量,都是被严格限定的,哪个字节代表什么含义,长度多少,先后顺序如何,都不允许改变。 1.1 魔数和class文件的版本 Class文件的头4个字节成为魔数(Magic Number)

C Primer Plus 第3章 数据和C

断了今生、忘了曾经 提交于 2019-12-05 20:54:41
3.1示例程序 程序清单3.1 rhodium.c程序 ------ /*rhodium.c用金属铑衡量您的体重*/ #include <stdio.h> int main (void) { folat weight,value;//folat类型可以处理带有小数点的数字 printf("Are you worth you weight in rhodium? \n"); printf("Let's check it out. \n"); printf("Please enter your weight in pounds: "); scanf("%f",&weight);//%f指示scanf从键盘读取一个浮点值,&weight指定将输入值赋给名为weight的变量中; value=770*weight*14.5833; printf("Your weight in rhodium is worth $%.2f. \n",value);//%f使用.2修饰词使浮点值显示到小数点后两位; printf("You are easily worth that ! If rhodium prices drop,\n"); printf("eat more to maintain your value.\n"); return 0; } 3.2 变量与常量数据

不止面试—jvm类加载面试题详解

核能气质少年 提交于 2019-12-05 06:10:25
摘自: https://www.cnblogs.com/bailiyi/p/11887470.html 不止面试—jvm类加载面试题详解 面试题 带着问题学习是最高效的,本次我们将尝试回答以下问题: 什么是类的加载? 哪些情况会触发类的加载? 讲一下JVM加载一个类的过程 什么时候会为变量分配内存? JVM的类加载机制是什么? 双亲委派机制可以打破吗?为什么 答案放在文章的最后,来不及看原理也可以直接跳到最后直接看答案。 深入原理 类的生命周期 类的生命周期相信大家已经耳熟能详,就像下面这样: 不过这东西总是背了就忘,忘了又背,就像马什么梅一样,对吧? 其实理解之后,基本上就不会再忘了。 加载 加载主要做三件事: 找到类文件(通过类的全限定名来获取定义此类的二进制字节流) 放入方法区(将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构) 开个入口(生成一个代表此类的java.lang.Class对象,作为访问方法区这些数据结构的入口) 总的来讲,这一步就是通过类加载器把类读入内存。需要注意的是,第三步虽然生成了对象,但并不在堆里,而是在方法区里。 连接 连接分为三步,一般面试都比较喜欢问 准备 这一步。 校验 顾名思义,检查Class文件的字节流中包含的信息是否符合当前虚拟机的要求。 准备 这一步中将为静态变量和静态常量分配内存,并赋值。 需要注意的是

PHP基础2--基本语法

匿名 (未验证) 提交于 2019-12-02 22:11:45
知识点: 标记符,注释 变量 常量 数据类型 运算符 流程控制 标记符,注释   4种标记符号:     1. 默认形式: <?php php语句 ?>       如果<?php ...?>之后没有html代码,则 ?> 标记可以省略     2. 短标签形式: <? php语句 ?>       默认是关闭的,需要开启配置项【php.ini】: short_open_tag=on     3. script标签形式: <script language=”php”> php语句 </script>     4. asp形式: <% php语句 %>       默认是关闭的,需要开启配置项【php.ini】: asp_tags =on   大小写      变量: 区分大小写     常量: 区分大小写, 可以在php.ini文件中配置为不区分大小写     其他不区分大小写: 如函数名,系统关键字...   注释     单行注释: //注释内容 或 #注释内容     多行注释: /*注释内容*/ 变量   概念:     代表一定存储空间及其中数据的一个“标识符”     赋值同时定义变量, $v1 = 1; 图示:   命名规则     以字母或下划线开头 后跟任意数量(含0个)字母,数字和下划线     常见命名:         骆驼命名法 : 首单词小写