类型转换

10月30,31、11月7.8、.Java第三课

半世苍凉 提交于 2019-11-29 01:56:16
Java的浮点型常量默认为double型,声明float型常量,须在后面加“f”或“F”。float a=3.14f 不加f默认为double 字符型以单引号指定字符型值。 \n 换行符 \"双引号 \'单引号 \反斜杠 \r回车符 \t制表符 \b退格符 boulean类型适用于逻辑运算,一般用于程序流程控制; 程序流程控制分为顺序结构,分支结构,循环结构 if,while,do-while,for循环控制语句。 数组:相同数据类型的变量的集合;枚举:一种独特的值类型,声明一组命名的常数 自动类型转换是将某种基本类型变量的值直接赋值给某一种基本类型。 强制类型转换为自动类型转换的逆过程,将容量大的数据类型转换为容量小得数据类型,要加上强制类型转换符()。 String a=“43”;int=integer,parseINT(a); 语法:数据类型 变量1=数据类型 (变量2); 操作符也成为了运算符,用来将一个或多个操作数连接成执行性的语句。 一元操作符:自增++、自减--、逻辑非!、按位非~、强制类型转换()等 二元操作符:算术运算、位运算、关系运算、逻辑运算、赋值等 三元操作符:三元判断 ?: 位运算只针对整数数据类型(2进制) int a=5; int b=++a +8; //a先自增变为6,再与8相加,最后b值为14. int b=a++ +8; //先加8为13

Struts2与Struts1的对比

久未见 提交于 2019-11-29 00:46:15
Action 类: • Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。 • Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现 常用的接口。Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。 线程模式: • Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能作的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的。 • Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题) Servlet 依赖: • Struts1 Action 依赖于Servlet API ,因为当一个Action被调用时HttpServletRequest 和 HttpServletResponse 被传递给execute方法。 • Struts 2 Action不依赖于容器,允许Action脱离容器单独被测试。如果需要,Struts2

Struts1和Struts2的区别和对比

对着背影说爱祢 提交于 2019-11-29 00:46:02
Action 类: • Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。 • Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去 实现 常用的接口。Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。 线程模式: • Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能作的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的。 • Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题) Servlet 依赖: • Struts1 Action 依赖于Servlet API ,因为当一个Action被调用时HttpServletRequest 和 HttpServletResponse 被传递给execute方法。 • Struts 2 Action不依赖于容器,允许Action脱离容器单独被测试。如果需要,Struts2

多态

╄→гoц情女王★ 提交于 2019-11-28 21:44:31
多态 1.什么是多态 同一父类的不同子类对象 对同一方法调用,产生的不同的行为 2.为什么使用多态 减少代码冗余,增强程序的可维护性和可扩展性 3.怎么使用多态 3.1定义父类 3.2定义子类继承父类 3.3子类重写父类方法 3.4子类对象赋给父类引用 3.5使用父类引用调用子类重写后的方法 强制类型转换 1.什么是类型转换 就是将一个类型引用,转换成另一个类型 2.为什么需要类型转换 父类引用无法调用到子类特有的成员,如果必须调用就是需要强制类型转换 3.怎么类型转换 (<类型>)<引用> Pet p=xxx; (Dog)p 4.强制类型转换的注意事项 如果将一个A子类的引用强转成B子类,会发生类型转换异常ClassCastException 为了防止这样的异常发生在强转前,一般要先判断一下实际的类型 instanceof运算符(关键字) 1.什么是instanceof(属于) 判断一个对象是否属于一个类型 2.为什么需要instanceof 为了防止类型转换异常 3.怎么使用instanceof 格式 <对象> instanceof <类型> 运算的结果是一个boolean值 来源: https://blog.csdn.net/weixin_45464212/article/details/100130143

hibernate 类型转换

匆匆过客 提交于 2019-11-28 19:21:13
hibernate 执行SQL语句字符串常量类型变成了 character 解决办法 1重写Dialect public class SQLServerDialect extends org.hibernate.dialect.SQLServerDialect{ public SQLServerDialect() { super (); //very important, mapping char(n) to String registerHibernateType(Types.CHAR, Hibernate.STRING.getName()); } } 2 this .getSession() .createSQLQuery(" select id, name, state from tb") . addScalar(" id", Hibernate .STRING) . addScalar(" name", Hibernate .STRING) . addScalar(" state", Hibernate .STRING) .list(); 3 select id,name,cast(state as varchar(2)) from tb 来源: https://www.cnblogs.com/jentary/p/11422223.html

SQL无法走索引的情况及解决思路

柔情痞子 提交于 2019-11-28 18:52:11
上次丁俊大师在社群上做了CBO优化器和坑爹案例的分享后,反响不是一般的强烈,但其中也有一部分同学表示太高大上了(我也是这样觉得的),消化起来相当有难度,于是便有了本文。绕开复杂的CBO优化器不说,本文将帮你理清那些因为SQL语句编写规范问题导致没有充分利用索引来大幅提升效率的使用场景。 一、SQL无法走索引的情况及解决思路 因为数据库优化器不够智能,或者一些逻辑原因,导致SQL在比较适合走索引的情况下却无法正确利用索引。这时候,除了给数据库需要的统计信息之外,SQL语句本身还必须要给优化器足够多的额外有效信息,帮助优化器能够选择更好的执行计划。要让优化器正确选择需要的索引,要考虑两点: 如何避免优化器的限制 根据业务数据特点改写SQL语句 说明:这里说的走不了索引,是指走不了正常的RANGE SCAN,非(FAST) FULL INDEX SCAN。 SQL无法走索引常见的有如下8种情况: 统计信息不准确 索引列的值允许为NULL 谓词使用了不等于(<>, !=) LIKE前通配或全通配的查询 索引列使用了函数、数学运算、其它表达式等 使用了隐式类型转换 查询转换失败 其它语句逻辑原因 第一、二种情况在现实中比较常见,解决办法也相对比较简单,下面就不再作详细展开了。 谓词使用了不等于(<>,!=),走不了索引 解决方法: 如果不等条件之外的值不多,而且是确定的

【模板】类型转换与模板类型参数

喜你入骨 提交于 2019-11-28 18:15:30
  与非模板函数一样,我们在一次调用中传递给模板的实参被用来初始化函数的形参。如果一个函数形参的类型使用了模板类型参数,那么它采用特殊的初始化规则。只有很有限的几种类型转换会自动地用于这些实参。编译器通常不是对实参进行类型转换,而是生成一个新的模板实例。   与往常一样,顶层const无论是在形参还是在实参中,都会被忽略。在其它类型转换中,能在调用中应用于函数模板的包括如下两项。 const转换:可以将一个非const对象的引用(或指针)传递给一个const引用(或指针)形参。 数组或函数指针转换:如果函数形参不是引用类型,则可以对数组或函数类型的实参应用正常的指针转换。一个数组的实参可以转换为一个指向其首元素的指针。类似的,一个函数实参可以转换为一个该函数类型的指针。 其它类型转换,如算数转换、派生类向基类的转换以及用户自定义转换,都不能应用于函数模板。   作为一个例子,考虑对函数fobj和fref的调用。fobj拷贝它的参数,而fref的参数是引用类型: template <typename T> T fobj(T, T); //实参被拷贝 template <typename T> T fref(const T &, const T &); //引用 int main() { string s1("a value"); const string s2("another

面向对象的三大特性

半世苍凉 提交于 2019-11-28 16:21:42
面向对象技术的三大特性:继承性、多态性和封装性。 继承性 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。 比如兔子和羊属于 食草动物和食肉动物又是属于动物类。 所以继承需要符合的关系是:is-a,父类更通用,子类更具体。 虽然食草动物和食肉动物都是属于动物,但是两者的属性和行为上有差别,所以子类会具有父类的一般特性也会具有自身的特性。 继承的特性 子类拥有父类非private的属性,方法。 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。 子类可以用自己的方式实现父类的方法。 Java的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如A类继承B类,B类继承C类,所以按照关系就是C类是B类的父类,B类是A类的父类,这是java继承区别于C++继承的一个特性。 提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系)。 super 与 this 关键字 super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。 this关键字:指向自己的引用。 对于构造器而言,它只能够被调用,而不能被继承 子类不能继承父类的构造器(构造方法或者构造函数),但是父类的构造器带有参数的

最近阅读

♀尐吖头ヾ 提交于 2019-11-28 16:21:21
python是一个糟糕的语言吗 https://www.zhihu.com/question/21017354 这句话不错 我们对编程语言和使用进行了大规模的研究,因为它涉及到软件质量。我们使用的 Github 上的数据,具有很高的复杂性和多个维度上的差异的特性。我们的样本数量允许我们对编程语言效果以及在控制一些混杂因素的情况下,对编程语言、应用领域和缺陷类型之间的相互作用,进行一个混合方法的研究。研究数据显示,函数式语言是好于过程化语言的;不允许隐式类型转换的语言是好于允许隐式类型转换的语言的;静态类型的语言是好于动态类型的语言的;管理内存的语言是好于非管理的语言的。进一步讲,编程语言的缺陷倾向与软件应用领域并没有关联。另外,每个编程语言更多是与特定的 bug 类别有关联,而不是与全部 bug。 来源: https://www.cnblogs.com/cutepig/p/11415252.html

Java基本数据类型与包装类

落爺英雄遲暮 提交于 2019-11-28 15:09:48
原文引用 大专栏 https://www.dazhuanlan.com/2019/08/26/5d6353f81ba56/ 前几天提到我最近要复习Java基础,所以我又去图书馆借了这本书 刚好过去整整一年,当初我入门Java就是看这本书,今天的我依然是个Java初学者~ 这篇的主题是基础中的基础了,所以也很容易被人忽略(包括我也是),最近刷起题来才发现细枝末节的东西很多,还是要理一理。 一、基本数据类型 Java提供了八种基本类型,六种数值类型(四个整型,两个浮点型),一种字符型,还有一种布尔型。 byte: byte 数据类型是8位、有符号的以二进制补码表示的整数; 最小值是 -128(-2^7); 最大值是 127(2^7-1); 默认值是 0; byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一; 例子:byte a = 100;byte b = -50; short: short 数据类型是 16 位、有符号的以二进制补码表示的整数; 最小值是 -32768(-2^15); 最大值是 32767(2^15 - 1); Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一; 默认值是 0; 例子:short s = 1000;short r = -20000;