java中时间用什么数据类型?数据库datetime是什么类型
各位老铁们好,相信很多人对java中时间用什么数据类型都不是特别的了解,因此呢,今天就来为大家分享下关于java中时间用什么数据类型以及数据库datetime是什么类型的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
java中的引用数据数据类型是怎样的
java中有两种数据类型:基本类型和引用类型。
基本类型有8个:
整数类型 byte、short、int、long
浮点数类型 float、double
字符型 char
布尔类型 boolean
引用类型包括三种:
类 Class
接口 Interface
数组 Array
基本类型是通过诸如 int a= 5; long b= 6L;的形式来定义的,称为自动变量,自动变量存放的是字面值,不是类的实例,它存放在内存的堆栈中,数据大小和生存期必须是确定的,存取速度比较快,在堆栈中的字面值可以共享,也就是说我们定义一个int a= 5;然后又定义了一个int b= 5;这时a与b在内存中指向的是同一个字面常量。
引用类型一般是通过new关键字来创建,比如Integer num= new Integer(3);它存放在内存的堆中,可以在运行时动态的分配内存大小,生存期也不必事先告诉编译器,当引用类型变量不被使用时,Java内部的垃圾回收器GC会自动回收走。引用变量中存放的不是变量的内容,而是存放变量内容的地址。
在参数传递时,基本类型都是传值,也就是传递的都是原变量的值得拷贝,改变这个值不会改变原变量,而引用类型传递的是地址,也就是参数与原变量指向的是同一个地址,所以如果改变参数的值,原变量的值也会改变。这点要注意。
在java中,8种基本类型在java中都有对应的封装类型,也就是引用类型:
整数类型 Byte、Short、Integer、Long
浮点数类型 Float、Double
字符型 Character
布尔类型 Boolean
有时候我们会看到这样的语句 Integer num= 3;Boolean b= true;这样定义也能行得通,其实这里面有一个自动装箱的问题,即java自动把3这个字面常量封装成了Integer对象,同理也有自动拆箱。
还有些需要注意的比较特殊的地方:
1.Integer类型
Integer i1= 3;
Integer i2= 3;
此时i1== i2返回的是true
Integer i1= 128;
Integer i2= 128;
此时i1== i2返回的是false,
这时因为Integer的数值在-128~127之间时,即在int的范围内,默认是按照基本类型int来存放的,仍旧存在堆栈中,如果超出了int的范围,就按照对象的方式来存放和比较了。
2、String类型
String类型我们有时候也会直接这样定义:
String s="abc";
这里的"abc"称为字符串常量,也是存在堆栈中的,s中存放的就是指向这个堆栈地址的引用,如果再定义一个
String s1="abc";
这时,s与s1存放的是同一个地址的引用,即s与s1指向的是同一个字符串常量,
s== s1的值是true,
但是如果有
String s2= new String("abc");
这时s== s2则为false,因为使用new之后,每次生成的对象都不是同一个,即使存储的内容相同。
上面的s== s1,s== s2其实比较的都是地址,并不是里面的内容。如果要比较内容,可以使用equals()方法。
其他的就不多说了,打起来太慢了,可以自己去看一下java编程思想。
java里表示时间的类型是什么
java.util.Date,和java.util.Calendar是 java的主要的时间类型
Java.util.Calendar类是java.util.Date类的一个更加深入,更加全面的替代。Java.util.Calendar类支持java.util.Date的所有功能,此外,Calendar还引入了多语言,多区域的特性,可以根据需要获取不同区域,不同时区的时间,Calendar还增加了比Date更加方便和快捷的许多操作,如获取一年当中的第几个星期,各个月的天数等便捷的方法。
Java.util.Calendar区别与java.util.Date的几个地方也需要注意一下:首先,Calendar增加了毫秒的时间段,通过它可以获取时间点的毫秒值,而java.util.Date只是精确到秒。其次,Calendar过去年的时候是当前年份比如:2010,而Date获取年份的时获取到的是当前年份-1900的一个值(2010-1900=110,因此,你调用getYear后过去的值就是110)。最后Calendar是一个抽象类,之所以能够实例化,是因为此处的Calendar充当了一个类似于工厂的作用,在getInstance方法中实例化了Calendar子类GregorianCalendar,并把它返回给客户使用。
此外,还有 java.sql.Date, java.sql.Time, java.sql.Timestamp
在Java中如何向数据库中插入Time类型的数据
以mysql为例,有个字段是timestamp或者datatime类型。
1、可以直接在java中直接new java.lang.util.Date();
2、获取到一个时间类型的字符串,然后利用SimpleDateFormat中的parse方法将时间字符串解析成一个Date对象。
现在比较流行的框架都是可以直接插入Date类型的数据,只要与数据库中的映射一致即可。
如mybatis,如下:
<resultMap id="BaseResultMap" type="com.test.User">
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="name" property="name" jdbcType="VARCHAR"/>
<result column="insert_time" property="insertTime" jdbcType="TIMESTAMP"/>
</resultMap>
只要User中的属性insertTime是一个标准格式的java.lang.util.Date类型,然后调用mybatis的insert方法即可插入。
数据库datetime是什么类型
datetime类型:可用于需要同时包含日期和时间信息的值。
datetime:MySQL以'YYYY-MM-DD HH:mm:ss'格式检索与显示 DATETIME类型。
DateTime日期和时间部分,可以表示的日期范围从公元1753年1月1日00:00:00.000到9999年12月31日23:59:59.997,精确到3.33毫秒,它需要8个字节的存储空间,其中前4个字节用于存储1900年1月1日以前或以后的天数,数值分正负,正数表示在此日期之后的日期,负数表示在此日期之前的日期;后4个字节用于存储从此日零时起所指定的时间经过的毫秒数。
扩展资料
在MySQL中创建表时,很容易通过类型介绍就能选择到合适自己的数据类型。不过到底是选择 datetime还是 timestamp,可能会有点犯难。这两个日期时间类型各有优点:datetime的日期范围比较大;timestamp所占存储空间比较小,只是 datetime的一半。
另外,timestamp类型的列还有个特性:默认情况下,在 insert, update数据时,timestamp列会自动以当前时间(CURRENT_TIMESTAMP)填充/更新。“自动”的意思就是,你不去管它,MySQL会替你去处理。
参考资料来源:百度百科-SQL数据类型
OK,本文到此结束,希望对大家有所帮助。