特高深的Java问题
8、能不能自己写个类,也叫java.lang.String?
第1题:
下列关于字符串的叙述错误的是( )。
A.创建String类的字符串对象后,字符串所代表的内容根据情况可改变
B.字符串可以使用java.lang.String和java.lang.StringBuffer来定义
C.StringBuffer用来处理长度可变的字符串
D.在Java语言中,字符串是作为对象来处理的
第2题:
真搞不懂该用什么类型,java实体类用Interger居然报错,浮点型的我应该是用double还是float呢?能不能给几个典型的hibernate判定类型的例子,小弟不胜受用。
在程序中通过Hibernate来保存java.sql.Clob或java.sql.Blob 实例时,要包含两个步骤:
A、在一个数据库事务中先保存一个空的 Blob 或 Clob 实例。
B、接着锁定这条记录,更新上面保存的 Blob 或 Clob 实例,把二进制数据或文本数据写到 Blob 或 Clob 实例中。
下面给出例子:
1)Java 时间和日期类型的 Hibernate 映射
映射类型
Java 类型
标准 SQL 类型
描述
date
util.Date 或者 sql.Date
DATE
YYYY-MM-DD
time
Date Time
TIME
HH:MM:SS
timestamp
Date Timestamp
TIMESTAMP
YYYYMMDDHHMMSS
calendar
calendar
TIMESTAMP
YYYYMMDDHHMMSS
calendar_date
calendar
DATE
YYYY-MM-DD
2)常规Hibernate 映射
integer 或者 int
int 或者 java.lang.Integer
INTEGER
4 字节
long
long Long
BIGINT
8 字节
short
short Short
SMALLINT
2 字节
byte
byte Byte
TINYINT
1 字节
float
float Float
FLOAT
4 字节
double
double Double
DOUBLE
8 字节
big_decimal
java.math.BigDecimal
NUMERIC
NUMERIC(8,2)8 位
character
char Character String
CHAR(1)
定长字符
string
String
VARCHAR
变长字符串
boolean
boolean Boolean
BIT
布尔类型
yes_no
boolean Boolean
CHAR(1) (Y-N)
布尔类型
true_false
boolean Boolean
CHAR(1) (T-F)
布尔类型
3)Java 大对象类型的 Hibernate 映射类型
映射类型
Java 类型
标准 SQL 类型
MySQL 类型
Oracle 类型
binary
byte[]
VARBINARY( 或 BLOB)
BLOB
BLOB
text
String
CLOB
TEXT
CLOB
serializable
Serializable 接口任意实现类
VARBINARY( 或 BLOB)
BLOB
BLOB
clob
java.sql.Clob
CLOB
TEXT
CLOB
blob
java.sql.Blob
BLOB
BLOB
BLOB
第3题:
【单选题】在java中,字符串由java.lang.String和()定义
A.java.lang.StringChar
B.java.lang.StringBuffer
C.java.io.StringChar
D.java.io.StringBuffer
第4题:
能不能自己写个类,也叫java.lang.String?
可以,但在应用的时候,需要用自己的类加载器去加载,否则,系统的类加载器永远只是去
加载jre.jar包中的那个java.lang.String。由于在tomcat的web应用程序中,都是由webapp自己
的类加载器先自己加载WEB-INF/classess目录中的类,然后才委托上级的类加载器加载,如
果我们在tomcat的web应用程序中写一个java.lang.String,这时候Servlet程序加载的就是我们
自己写的java.lang.String,但是这么干就会出很多潜在的问题,原来所有用了java.lang.String
类的都将出现问题。
虽然java提供了endorsed技术,可以覆盖jdk中的某些类,具体做法是….。但是,能够被覆盖
的类是有限制范围,反正不包括java.lang这样的包中的类。
(下面的例如主要是便于大家学习理解只用,不要作为答案的一部分,否则,人家怀疑是题
目泄露了)例如,运行下面的程序:
package java.lang;
public class String {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("string");
}
}
报告的错误如下:
java.lang.NoSuchMethodError: main
Exception in thread "main"
这是因为加载了jre自带的java.lang.String,而该类中没有main方法。
第5题:
此题为判断题(对,错)。