类型转换

自定义日期类型转换

微笑、不失礼 提交于 2020-01-16 13:22:23
struts中提供一个自定义类型的转换,比如这里面的日期,默认转换2019-9-12,如果写成2019/9/12则会报错 struts的字符串类型转换是由一个类 com.opensymphony.xwork2.conversion.impl.StringConverter 类来完成的 日期类型转换是由 com.opensymphony.xwork2.conversion.impl. D ateConverter来完成 所以如果自己想修改转换格式的话,可以自定义一个转换器 源码分析得出,如果要自己写一个类型转换 可以实现DefaultTypeConverter抽象类 我们一般也可以用它的子类StrutsTypeConverter来实现 写一个MyDateConverter,测试一下这里面的方法参数分别为什么东西 package convert; import org.apache.struts2.util.StrutsTypeConverter; import java.util.Map; public class MyDateConverter extends StrutsTypeConverter { /** * 将字符串转化为对象类型 * @param map * @param strings * @param aClass * @return */ @Override

js 字符串转化成数字

只谈情不闲聊 提交于 2020-01-16 05:57:51
方法主要有三种 转换函数、强制类型转换、利用js变量弱类型转换。 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。 一些示例如下: parseInt("1234blue"); //returns 1234 parseInt("0xA"); //returns 10 parseInt("22.5"); //returns 22 parseInt("blue"); //returns NaN parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数指定的,示例如下: parseInt("AF", 16); //returns 175 parseInt("10", 2); //returns 2 parseInt("10", 8); //returns 8 parseInt("10", 10); //returns 10 如果十进制数包含前导0,那么最好采用基数10,这样才不会意外地得到八进制的值。例如: parseInt("010"); //returns 8 parseInt("010", 8); /

概念

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-16 00:46:50
1、内联函数的概念和作用是什么? 内联函数是指在函数调用处直接嵌入函数体的函数,用关键字inline来修饰。关键字inline的作用是:请求编译器尽可能将函数调用形式变为内联(并不一定能成为内联函数)。成为内联函数的主要优势为以内存空间换编译/运行时间. 内联函数的限制: (1)、函数体内不允许有循环语句或者选择语句。 (2)、函数体里不能出现递归。 (3)、函数体里不能有静态局部变量。 注意:内联函数的定义必须出现在内联函数第一次调用之前; 2、宏函数和自定义函数有什么区别? 宏函数 : #define MAX(a,b) a > b ? a : b 自定义函数 : int max(int a,int b) { } 宏函数缺点: (1)、不安全,傻瓜式替换,不做语法检查。 (2)、只能实现一些简单的功能,复杂的功能容易出错。 (3)、编译时间增加。 宏函数优点: 省去自定义函数发生调用(返回有时间的开销,形参的空间分配和释放有内存的开销)的过程,从而提高了运行效率。 自定义函数缺点: 函数调用/返回有时间的开销,形参的空间分配和释放有内存的开销。 自定义函数优点: 安全,能实现较为复杂的功能。 3、默认参数和占位参数 相较C来说,C++允许定义形参时给它一个默认值,当函数调用时没有指定这个参数的值,编译器会自动用默认值代替。例 int add(int a,int b=2);

数据类型转换_运算符

谁说胖子不能爱 提交于 2020-01-15 07:12:57
一,自动数据类型转换 1. 什么是数据类型转换? 在一个变量定义的过程当中,等号左右两边数据类型不一致的情况下,出现数据类型转换,主要分为两种。 2. 类型转换的分类 A. 自动类型转换(数据范围从小到大) B. 强制类型转换(数据范围从大到小) 3. 数据范围大小顺序: byte,short,char -> int -> long -> float -> double 【理解性记忆】 4. 自动类型转换的格式 格式: 数据类型 变量名称 = 数据值; 例如: double dd = 3.66F; //将 float 类型的数据,转换成为 double 类型的数据 long num = 520; //将 int 类型的数据,转换成为 long 类型的数据 二,强制类型转换 1. 格式写法 A. 格式: 数据类型小的 变量名称 = (数据类型小的)数据值; B. 例如: float num1 = (float)3.14; //将 double 类型转换成为 float 类型,浮点数默认是double,如果是float需要加F int num2 = (int)521L; //将 long 类型的521L数据转换成为int类型,long类型的数据后面需要加上L 2. 注意事项 "强制类型转换,可能损失精度" //可能的含义: 有可能有精度损失,有可能没有精度损失。 例如: int

关于枚举的用法和类型转换

坚强是说给别人听的谎言 提交于 2020-01-15 03:30:22
一、 定义 1 、每个枚举成员均具有相关联的常数值。此值的类型就是包含了它的那个枚举的基础类型。每个枚举成员的常数值必须在该枚举的基础类型的范围之内。示例 enum Color: uint { Red = -1, Green = -2, Blue = -3 } 产生编译时错误,原因是常数值 -1 、 -2 和 – 3 不在基础整型 uint 的范围内。 2 、枚举默认类型是 int ,从 0 开始 3 、多个枚举成员可以共享同一个关联值。示例 enum Color { Red, Green, Blue, Max = Blue } 显示一个枚举,其中的两个枚举成员( Blue 和 Max )具有相同的关联值。 4 、一个枚举成员的关联值或隐式地、或显式地被赋值。如果枚举成员的声明中具有“常数表达式”初始值设定项,则该常数表达式的值(它隐式转换为枚举的基础类型)就是该枚举成员的关联值。如果枚举成员的声明不具有初始值设定项,则它的关联值按下面规则隐式地设置: 5 、如果枚举成员是在枚举类型中声明的第一个枚举成员,则它的关联值为零。 否则,枚举成员的关联值是通过将前一个枚举成员(按照文本顺序)的关联值加 1 得到的。这样增加后的值必须在该基础类型可表示的值的范围内;否则,会出现编译时错误。 示例 using System; enum Color { Red, Green = 10,

Java 之 泛型的概念与好处

*爱你&永不变心* 提交于 2020-01-14 11:15:22
一、泛型的概念   泛型:JDK1.5之后引入的。泛型是指泛华的类型,参数化类型。    生活中的例子:     当有四个瓶子,准备用来装“醋”、“酱油”、“黄酒”、“花椒油”,如果瓶子没有标签的话,那么当这些调料一旦装进去之后,我们就容易忘记哪个瓶子里装了什么,每次用的时候,需要“闻”或“尝”等确认一下才能用,否则就容易加错调料。     生产瓶子的厂家不知道我们将来用这个瓶子装什么,因此我们为了后面的“方便”、“安全”,可以在装完调料之后贴“标签”。    同理可得:     在设计集合这个容器的数据结构时,不知道程序员会用来装什么对象。在设计时不确定元素的类型,但是在使用时,程序员是知道类型的。现在需要一个方式,渠道,让使用者在使用这个集合等时,告知这个集合我里面装的是什么对象。这就需要泛型。     使用集合时,一旦把一个对象“丢进”Java集合中,集合就会忘记对象的类型,把所有的对象当成Object类型处理。当程序从集合中取出对象后,就需要进行强制类型转换,这种强制类型转换不仅代码臃肿,而且容易引起ClassCastException异常。   Demo: 1 import java.util.ArrayList; 2 import java.util.List; 3 4 public class TestListErr { 5 6 public static void

Java数据类型转换

荒凉一梦 提交于 2020-01-13 19:33:18
1. 自动转换 /* 当数据类型不一样时,将会发生数据类型转换。 自动类型转换(隐式) 1. 特点:代码不需要进行特殊处理,自动完成。 2. 规则:数据范围从小到大。 强制类型转换(显式) */ public class Demo01DataType { public static void main(String[] args) { System.out.println(1024); // 这就是一个整数,默认就是int类型 System.out.println(3.14); // 这就是一个浮点数,默认就是double类型 // 左边是long类型,右边是默认的int类型,左右不一样 // 一个等号代表赋值,将右侧的int常量,交给左侧的long变量进行存储 // int --> long,符合了数据范围从小到大的要求 // 这一行代码发生了自动类型转换。 long num1 = 100; System.out.println(num1); // 100 // 左边是double类型,右边是float类型,左右不一样 // float --> double,符合从小到大的规则 // 也发生了自动类型转换 double num2 = 2.5F; System.out.println(num2); // 2.5 // 左边是float类型,右边是long类型,左右不一样 //

C语言类型强制转换

两盒软妹~` 提交于 2020-01-13 04:24:28
C语言类型强制转换 强制类型转换 是通过类型转换运算来实现的。其一般形式为: (类型说明符) ( 表达式 ) 其功能是把表达式的运算结果 强制转换 成类型说明符所表示的类型。 目录 1 基本介绍 2 注意事项 1 基本介绍 编辑 强制类型转换 是通过类型转换运算来实现的。其一般形式为:(类型说明符)( 表达式 )其功能是把表达式的运算结果 强制转换 成类型说明符所表示的类型。自动转换是在源类型和目标类型兼容以及目标类型广于源类型时发生一个类型到另一类的转换。例如: (float) a 把a转换为实型,(int)(x+y) 把x+y的结果转换为 整型 。在使用 强制转换 时应注意以下问题: 2 注意事项 编辑 1.类型说明符和 表达式 都必须加括号(单个 变量 可以不加括号),如把(int)(x+y)写成(int)x+y则成了把x转换成int型之后再与y相加了。 2.无论是 强制转换 或是自动转换,都只是为了本次运算的需要而对 变量 的数据长度进行的临时性转换,而不改变数据说明时对该 变量 定义的类型。 例1: main() { float f=5.75; printf("f=%d,f=%f\n",(int)f,f); } f=5,f=5.750000 将float f 强制转换 成int f float f=5.75;printf("(int)f=%d,f=%f\n",(int)f

MYSQL优化

ぃ、小莉子 提交于 2020-01-12 17:02:42
优化目标 减少 IO 次数 IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑,当然,也是收效最明显的优化手段。 降低 CPU 计算 除了 IO 瓶颈之外,SQL优化中需要考虑的就是 CPU 运算量的优化了。order by, group by,distinct … 都是消耗 CPU 的大户(这些操作基本上都是 CPU 处理内存中的数据比较运算)。当我们的 IO 优化做到一定阶段之后,降低 CPU 计算也就成为了我们 SQL 优化的重要目标 优化方法 改变 SQL 执行计划 明确了优化目标之后,我们需要确定达到我们目标的方法。对于 SQL 语句来说,达到上述2个目标的方法其实只有一个,那就是改变 SQL 的执行计划,让他尽量“少走弯路”,尽量通过各种“捷径”来找到我们需要的数据,以达到 “减少 IO 次数” 和 “降低 CPU 计算” 的目标 常见误区 count(1)和count(primary_key) 优于 count(*) 很多人为了统计记录条数,就使用 count(1) 和 count(primary_key) 而不是 count(*) ,他们认为这样性能更好,其实这是一个误区。对于有些场景,这样做可能性能会更差,应为数据库对 count(*)

详解C语言的类型转换

ぐ巨炮叔叔 提交于 2020-01-12 15:17:26
1.自动类型转换 字符型变量的值实质上是一个8位的整数值,因此取值范围一般是-128~127,char型变量也可以加修饰符unsigned,则unsigned char 型变量的取值范围是0~255(有些机器把char型当做unsighed char型对待, 取值范围总是0~255)。 如果一个运算符两边的运算数类型不同,先要将其转换为相同的类型,即较低类型转换为较高类型,然后再参加运算,转换规则如下图所示。 图中 横向箭头表示必须的转换 ,如两个float型数参加运算,虽然它们类型相同,但仍要先转成double型再进行运算,结果亦为double型。 纵向箭头表示当运算符两边的运算数为不同类型时的转换 ,如一个long 型数据与一个int型数据一起运算,需要先将int型数据转换为long型, 然后两者再进行运算,结果为long型。 所有这些转换都是由系统自动进行的, 使用时你只需从中了解结果的类型即可。 这些转换可以说是自动的,当然,C语言也提供了以显式的形式强制转换类型的机制。 当较低类型的数据转换为较高类型时,一般只是形式上有所改变, 而不影响数据的实质内容, 而较高类型的数据转换为较低类型时则可能有些数据丢失。 在进行自动类型转换的时候,如果原来的数是无符号数,那么在扩展的时候,高位填充的是0;如果是有符号数,那么高位填充的时符号位! 2.赋值中的类型转换