4.5 Number Type Casting(数字类型强转)隐式 casting(from small to big) byte a = 111; int b = a;显式 casting(from big to small) int a = 1010;byte b = (byte)a; 注意: 从大到小必须强转! 一道著名的公司面试题如下,以下程序有何问题? public class Test {    public static void main(String[] args) {    …
Java中primite type,如char,integer,bool之类的,它们的读写操作都是atomic的,但是有几个例外: long和double类型不是atomic的,因为long和double都是8字节的,而在32位的CPU上,其机器字长为32位,操作8个字节需要多个指令操作. ++i或者i++,因为要先读后写,也是多步操作. 这些情况下,需要使用AutomicInteger,AutomicLong. 同时,java中的reference的读写也是automic的,虽然referen…
首先看一下几个测试题,验证一下java中对基本类型和包装类型的理解,看看最后输出的答案对不对,答案在这篇博客中哦: // 第一题: 基本类型和包装类型 int a = 100; Integer b = 100; System.out.println(a == b); // 第二题: 两个包装类型 Integer c = 100; Integer d = 100; System.out.println(c == d); // 第三题 c = 200; d = 200; System.out.pri…
JAVA中如何获取变量的类型? package xiya; public class Demo { public static void main(String[] args) { String type = getType("123"); System.out.println(type.substring(type.lastIndexOf('.') + 1, type.length())); } public static String getType(Object o) { ret…
原文网址:http://blog.csdn.net/piaojun_pj/article/details/5903009 java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把一个长度为4的byte数组转换为int类型.下面有两种方式. 第一种方法: public static byte[] int2byte(int…
java中读取特殊文件的类型: 第一种方法(字符拼接读取): public static String getType(String s){ String s1=s.substring(s.indexOf(".")+1,s.length()); if(s1.indexOf(".")>0){ s1=getTypeName(s1); } else{ return s1; } return s1;} 第二种方法(利用java中自带的格式库): new Mimetyp…
Java中的两种异常类型是什么?他们有什么区别? Throwable包含了错误(Error)和异常(Excetion两类) Exception又包含了运行时异常(RuntimeException, 又叫非检查异常)和非运行时异常(又叫检查异常) Error 是程序无法处理了, 如OutOfMemoryError.OutOfMemoryError等等, 这些异常发生时, java虚拟机一般会终止线程 . 运行时异常((RuntimeException) 都是RuntimeException类及其子…
java中如何理解:其他类型 + string 与 自增类型转换和赋值类型转换 一.字符串与其他类型连接 public class DemoString{ public static void main(String[] args){ System.out.println(5 + 5 + " 5 + 5 = " + 5 +5 ); } } 输出 out: 105 + 5 55 why? 自左向右运算,+号有字符串参与的话就是连接的作用,因为他没法直接运算. 任何类型和字符串相加都会变成…
Java中final.finally.finalize的区别与用法   1.简单区别:final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承.finally是异常处理语句结构的一部分,表示总是执行.finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,供垃圾收集时的其他资源回收,例如关闭文件等.2.中等区别:虽然这个单词在Java中都存在,但是并没太多关联:final:java中的关键字,修饰符.A).如果一个类被声明为final,…
在使用springmvc时,我们通常会定义类似这样的通用类与前端进行交互,以便于前端可以做一些统一的处理: public class Result<T> { private int ret; private String msg; private T data; // 此处省略getter和setter方法 } 这样的类序列化为json后,js反序列化处理起来毫无压力.但是如果rest接口的消费端就是java呢,java泛型的类型擦除却容易引入一些障碍. 一个反序列化的迭代 先定义一个类,后面…
Java中三种方式可以用来表示Class Type(类的实例对象), 第一种,通过隐藏的静态成员变量class来表示:第二种,通过调用该类的对象的getClass方法:第三种,通过Class.forName来动态加载类:拿到该类的实例对象后,都可以通过调用newInstance方法,来模拟new classA()的效果,具体见下面例子 package classTest; /** * 如何表示类的实例对象,也就是类类型(Class Type),有三种方法,也可以通过类类型来创建类的对象实例 *…
Type是Java 编程语言中所有类型的公共高级接口(官方解释),也就是Java中所有类型的“爹”:其中,“所有类型”的描述尤为值得关注.它并不是我们平常工作中经常使用的 int.String.List.Map等数据类型,而是从Java语言角度来说,对基本类型.引用类型向上的抽象: Type体系中类型的包括:原始类型(Class).参数化类型(ParameterizedType).数组类型(GenericArrayType).类型变量(TypeVariable).基本类型(Class); 原始类…
对于Java中的垃圾回收机制来说,对象是否被回收的标准在于该对象是否被引用.因此,引用也是JVM进行内存管理的一个重要概念. Java中对象的引用一般有以下4种类型: 1强引用  2软引用  3弱引用  4虚引用 以下一一介绍其用法和区别 1强引用:在Java中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用.当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到JVM也不会回收.因此强引用是造成Java内存泄漏的主…
以下内容摘自<深入理解Java虚拟机 JVM高级特性与最佳实践>第2版,强烈推荐没有看过的同学阅读,读完的感觉就是"原来学的都是些什么瘠薄东西(╯‵□′)╯︵┴─┴" 在JDK1.2以前,Java中的引用的定义很传统:如果 reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称这块内存代表着一个引用.这种定义很纯粹,但是太过狭隘,一个对象在这种定义下只有被引用或者没有被引用两种状态,对于如何描述一些"食之无味,弃之可惜"的对象就显得…
为什么要问这个问题,首先在Java中定义的八种基本数据类型中,除了其它七种类型都有明确的内存占用字节数外,就 boolean 类型没有给出具体的占用字节数,因为对虚拟机来说根本就不存在 boolean 这个类型,boolean 类型在编译后会使用其他数据类型来表示,那boolean类型究竟占用多少个字节?带着疑问,随便网上一搜,答案五花八门,基本有以下几种: 1.1个bit 理由是boolean类型的值只有true和false两种逻辑值,在编译后会使用1和0来表示,这两个数在内存中只需要1位(b…
在java中,数组与List<T> 之前进行互相转换,转换方法可总结为以下几种: 一. 将 数组转换成List<T> 1. 使用 Collections 的addAll 方法 String[] myStr = {"}; List<String> listStr = new ArrayList<String>(); Collections.addAll(listStr,myStr); 2. 使用 Arrays.asList()方法 String[]…
Mysql 与 java 的时间类型 MySql的时间类型有 Java中与之对应的时间类型   date                 java.sql.Date   Datetime          java.sql.Timestamp   Timestamp       java.sql.Timestamp   Time                 java.sql.Time   Year                 java.sql.Date 如图,mysql中的datetim…
import java.util.*; class test { public static void main(String[] args) { char a[] = {'b', 'a', 'c'}; String b = "111"; f(a,b); System.out.println(Arrays.toString(a)+" "+b); } public static void f(char[] a, String b) { a[1] = 'c'; b =…
转自:http://blog.sina.com.cn/s/blog_5f8421fb010162kb.html Java中由Object类型转化为int类型时,不能直接转化,先是将Object类型转化成String类型,然后将String类型转化为int类型! Object value=null; Integer.parseInt(String.valueOf(value)); 这就是将Object类型转化为int类型,而String.valueOf(value)是将value转化为String…
在开发过程中老犯一些低级错误,基础还得好好加强啊...... 今天遇到这样一个问题,我用 "=="来比较两个Long类型的数据,明明数值都相等,可是结果就是false,后来仔细想想,Long在java中是一个引用类型,而long类型是java中的一个基本数据类型,用来表示数值.如果用'=='去比较Long类型数据的话,比较的是它的引用地址,此时即使数值相等,而地址不相同,返回的结果永远是false:而比较long类型是是可以用‘==’比较的,此时比较的是值 Long类型数据比较: 1.…
(转) https://my.oschina.net/joymufeng/blog/139952 面这行代码的输出是什么? 下面两行代码的输出相同吗? 请尝试在Eclipse中运行上面的两个代码片段,如果你对输出结果感到很惊讶,请继续往下读... 正如你所看到的: 第1个代码片段的运行结果是:-1 第2个代码片段的运行结果是:65535和255 上面的两个代码片段来源于<Java解惑>的第6个小问题“多重转型”,原题目内容如下: public class Multicast{ public s…
在MySQL中对于时间的存储自己见表的时候都是设置的varchar类型的,感觉挺方便的. 昨天拿别人建好的表写代码,发现这张表中时间类型为datetime的,凭感觉试了一下不行,网上查了刚开始试了好几个都是不对的,一脸懵逼. -----------------------------------------------------------------------------------------------------------------------------------------…
在java项目中,我们会遇到价格.金额的数据,这时候我们java中应该用BigDecimal类型,数据库用decimal类型, 长度可以自定义, 如18; 小数点我们项目中用的是2, 保留2位小数. 此外还要注意的就是默认值, 一定写成0.00, 不要用默认的NULL, 否则在进行加减排序等操作时, 会带来转换的麻烦. 以下是一些换算代码 package com.bigdecimal; import java.math.BigDecimal; import java.math.RoundingM…
一.          static 请先看下面这段程序: public class Hello{public static void main(String[] args){//(1)System.out.println("Hello,world!");//(2)}} 看过这段程序,对于大多数学过Java的从来说,都不陌生.即使没有学过Java,而学过其它的高级语言,例如C,那您也应该能看懂这段代码的意思.它只是简单的输出“Hello,world”,一点别的用处都没有,然而,它却展示…
Java中的IO流:就是内存与设备之间的输入和输出操作就成为IO操作,也就是IO流.内存中的数据持久化到设备上-------->输出(Output).把 硬盘上的数据读取到内存中,这种操作 成为输入----->读(Input). input和output的参照物都是Java程序来参照 Input:读  持久化上的数据------>内存 父类 InputStream output:写  内存--------->硬盘  父类OutputStream IO程序书写流程: 1 使用前  …
1.简单区别:final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承.finally是异常处理语句结构的一部分,表示总是执行.finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,供垃圾收集时的其他资源回收,例如关闭文件等.2.中等区别:虽然这个单词在Java中都存在,但是并没太多关联:final:java中的关键字,修饰符.A).如果一个类被声明为final,就意味着它不能再派生出新的子类,不能作为父类被继承.因此,一个类不能同时…
前言 对Static.final.Static final这几个关键词熟悉又陌生?想说却又不知怎么准确说出口?好的,本篇博客文章将简短概要出他们之间的各自的使用,希望各位要是被你的面试官问到了,也能从容的回答... static 加载:static在类加载时初始化(加载)完成 含义:Static意为静态的,但凡被static 修饰说明属于类,不属于类的对象. 可修饰:Static 可以修饰 内部类.方法.成员变量.代码块. 不可修饰:Static不可修饰外部类.局部变量[static 属于类的,…
java中的Colletions类主要实现列表List的排序功能.根据函数参数的传递,具体的排序可以分为 : 1.  自然排序(natural ordering). 函数原型:sort(List<T> list)说明:参数是要参与排序列表的List对象                                                               实例说明:参与排序的列表的元素Student必须实现Comparable接口的public int compareTo(…
乍一看,字面上理解好像replace只替换第一个出现的字符(受javascript的影响),replaceall替换所有的字符,其实大不然,只是替换的用途不一样.    public String replace(char oldChar,char newChar)返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 而生成的. 如 果 oldChar 在此 String 对象表示的字符序列中没有出现,则返回对此 String 对象的引用.否则,创建一个新的…
一般我们使用数字的时候,会使用内置的数据类型,比如int.float.double.但在实际的开发当中,我们有时候会遇到需要使用数字对象,而不是数据类型的时候.为解决这个问题,java为每一种数据类型,提供了相对应的类,即包装类. 八种基本类型为:Integer.Double.Float.Short.Long.Boolean.Byte.Character,他们都是继承Number类型. 当数据类型需要被当做对象使用时,编译器会将数据类型装换为对应的包装类,这个过程被称为装箱:而当包装类对象被当做…