
java基础
ChampionDragon
本人从事安卓开发
展开
-
枚举(enum)
一.什么是枚举我们学习过单例模式,即一个类只有一个实例。而枚举其实就是多例,一个类有多个实例,但实例的个数不是无穷的,是有限个数的。例如word文档的对齐方式有几种:左对齐、居中对齐、右对齐。开车的方向有几种:前、后、左、右!我们称呼枚举类中实例为枚举项!一般一个枚举类的枚举项的个数不应该太多,如果一个枚举类有30个枚举项就太多了!二.定义枚举类型注意,定义枚举类的关键字是enum,而不是Enum,所有关键字都是小写的!其中FRONT、BEHIND、LEFT、RIGHT都是枚举项,它们都是原创 2020-07-17 15:10:29 · 58798 阅读 · 1 评论 -
JAVA转义字符详解
一.JAVA中反斜杠“\”的作用在不同的系统中,路径的分隔符不同,故需要做出判断,并切换分隔符VBS代码中确实不用转义,但是在JAVA或JS中,它采用的是C语言的语法,所以要转义,引号内要双写\\表示一个反\。① java把字符串中的反斜杠(\)替换成(\\)replaceAll里面用的是正则表达式,所以字符串转义一次,正则转义一次,所以一个斜扛要写4个,用replaceAll(...原创 2020-05-03 13:26:30 · 66250 阅读 · 3 评论 -
JAVA类型直接输入超过10位报The literal XXX of type int is out of range 解决办法
Long.parseLong("XXX")或long number=xxxLjava long与int取值范围的问题1:long l = 1024*1024*1024*4; //02:int i1 = 1024*1024*1024*4; //03:int i2 = 220000000000; //错误4:long l1 = 220000000000; //错误5:long l1 = 220...原创 2018-11-10 10:49:43 · 7945 阅读 · 1 评论 -
抽象类与接口的区别
抽象类方式中,抽象类可以拥有任意范围的成员数据,同时也可以拥有自己的非抽象方法,但是接口方式中,它仅能够有静态、不能修改的成员数据(但是我们一般是不会在接口中使用成员数据),同时它所有的方法都必须是抽象的。在某种程度上来说,接口是抽象类的特殊化。对子类而言,它只能继承一个抽象类(这是java为了数据安全而考虑的),但是却可以实现多个接口1、 抽象层次不同。抽象类是对类抽象,而接口是对行为的...原创 2019-01-04 14:32:25 · 335 阅读 · 0 评论 -
Lambda 表达式
一.什么事Lambda表达式Lambda 表达式是一种匿名函数,也可称为闭包,简单地说,它是没有声明的方法,也即没有访问修饰符、返回值声明和名字。它可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使 Java 语言的表达能力得到了提升。二.Lambda表达式的语法lambda 表达式的语法格式如下:(parameters) -> expression 或 (par...原创 2020-01-09 10:59:47 · 16468 阅读 · 1 评论 -
JAVA中Static和Final
1.1.static 含义:静态的,被 static修饰的方法和属性只属于类不属于类的任何对象。1.2.static 用法:1.2.1.static 可以修饰【内部类】、方法和成员变量。1.2.2.static【不可以修饰外部类】、【不可以修饰局部变量】(因为 static本身就是定义为类级别的,所以局部级别的变量是不可以用 static修饰的)。 2.1 final 含义:【...原创 2017-12-26 08:53:09 · 302 阅读 · 0 评论 -
JAVA基础(二)
在Java语言中,定义一个类是非常简单的,其基本语法是: 修饰符 class 类名{ 构造方法(const); 切记类里面不能写逻辑语句 方法(method); 属性(field); } }java中只要调用子类的构造函数就要调用父类无参数的构造函数吗?若父类中不存在无参数构造函数会出错吗?答:Java中只要调用子类的构...原创 2018-11-02 15:34:13 · 263 阅读 · 0 评论 -
java中this详解
this关键字在Java中表示以下概念:|·调用类中的属性:this.属性;|·调用类中的方法:this.方法();|·调用类中的构造:this();|·表示当前对象1:(调用类中的属性和方法)class Person{ private String name; private int age; public Person(String name, ...原创 2018-01-25 09:24:09 · 1102 阅读 · 0 评论 -
JAVA基础(一)
位运算~ 按位非(NOT) & 按位与(AND) | 按位或(OR) ^ 按位异或(XOR) >> 右移 >>> 无符号右移 <<左移 进制转换16进制0x 8进制0 切记是数字0//十进制转成十六进制:Integer.toHexString(n1);//十进制转成八进制:Integer.toOctalStri...原创 2018-03-07 09:16:49 · 357 阅读 · 0 评论 -
为什么只有OutputStream才有flush()方法,而InputStream没有该方法
调用close方法在关闭流之前,会强制刷新一下IO缓冲,这个在API里面也有提到。flush是要求将该OutputStream的临时缓存清空,强制写到底层的OutputStream中.flush方法的意思是强制将缓冲区所有的数据输出!例如你外面套了一层BufferedOutputStream,那么你写入的内容其实有一部分还保存在这个Stream中,而没有写入底层的。所以在某些时候必须调用flu...原创 2018-10-31 11:30:36 · 5056 阅读 · 0 评论 -
Map.Entry
你是否已经对每次从Map中取得关键字然后再取得相应的值感觉厌倦?使用Map.Entry类,你可以得到在同一时间得到所有的信息。标准的Map访问方法如下:Set keys = map.keySet( );if(keys != null) {Iterator iterator = keys.iterator( );while(iterator.hasNext( )) {Object ...原创 2018-01-23 10:08:55 · 432 阅读 · 0 评论 -
JAVA中DefaultHandler
java中的DafaultHandler是解析xml文件时的处理类。虽然很多处理中都是用自定义的handler去解析,但是也是继承DefaultHandler的。在DefaultHandler中有几个比较重要的方法。 startDocument() 接收文档开始的通知。characters(char[] ch, int start, int length) ...原创 2018-01-26 10:25:20 · 2753 阅读 · 0 评论 -
JAVA位运算、进制转换、byte数组转换、JAVA数据类型取值范围
位运算 ~ 按位非(NOT) & 按位与(AND) | 按位或(OR)^ 按位异或(XOR) >> 右移 >>> 无符号右移 <<左移 进制转换 16进制0x 8进制0 切记是数字0//十进制转成十六进制:Integer.toHexString(n1);//十进制转成八进制:Integer.to...原创 2017-12-18 09:44:17 · 1503 阅读 · 0 评论 -
JAVA基础(四)
内部类对象声明Outer outer = new Outer();Outer.Inner inner = outer.new Inner();静态内部类可以直接创建对象new Outer.Inner();switch case 变量必须是final类型原因是因为switch在编译的时候会确保case里面的值必须不能相同。1.只要是final static int 定义的数...原创 2019-02-12 11:03:35 · 446 阅读 · 0 评论 -
JAVA基础(三)
Int转Byte 例如:byte b=(byte)(-129);因为整型数-129十六进制为FF7FH,强制转换后,高八位去掉,结果为:7FH,所以为127,因为byte数组只能保留一个字节的长度,只能留底八位。Int和char互转java采用unicode,2个字节(16位)来表示一个字符。b=(int)a;//chartoint,高位全部补充符号位...原创 2018-12-12 10:10:02 · 894 阅读 · 0 评论 -
JAVA数组详解
Java中 int[ ] n 和 int n[ ]区别前者是定义一个叫做n的int数组(类型上就是数组,定义了一个变量)。后者是定义int,但这个int变量n是一个数组(类型上不是数组,定义了一组变量)。不过两句话结果一样,灵活使用即可。没区别,JAVA的写法是int[] n , int n[]是按c语言的习惯写的,java为了让C语言的程序员好上手提供了这两种写法。Java中的数组和C/...原创 2018-04-19 11:41:11 · 544 阅读 · 0 评论 -
JAVA中“...”三个点
可变长参数,就是这个位置可以传入任意个该类型参数,简单来说就是个数组。 1. testPoints(7); 2. testPoints(7,9,11); 3. testPoints(new Integer[]{7,9,11}); 1. public static void testPoints(Integer... itgr){ 2. ...原创 2017-12-04 14:16:33 · 49241 阅读 · 1 评论 -
Java中DecimalFormat详解
DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。DecimalFormat 包含一个模式 和一组符号 每个符号含义: 0 一个数字 # 一个数字,不包括 0 . 小数的分隔符的占位符 , 分组分隔符的占位符 ; 分隔格式。 - 缺省负数前缀。 % 乘以 100 和作为百分比显示 ? 乘以 1000 和作为千进制货币符显示;用货币符...原创 2018-08-02 13:53:39 · 11760 阅读 · 2 评论 -
JAVA中的传值和传址
我们先看一个例子:很多人认为结果是cd,但是答案是:ab 例子二:@Overridepublic void onCreate(Bundle savedInstanceState){ StringBuffer sba = new StringBuffer("xxx"); StringBuffer sbb = new StringBuffer("ooo");...原创 2018-05-12 09:05:47 · 7681 阅读 · 1 评论 -
Java反射机制
一、什么是反射机制 简单的来说,反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字, 那么就可以通过反射机制来获得类的所有信息。二、哪里用到反射机制 有些时候,我们用过一些知识,但是并不知道它的专业术语是什么,在刚刚学jdbc时用过一行代码, Class.forName("com.mysql.jdbc.Driver...原创 2017-10-31 11:02:03 · 290 阅读 · 0 评论 -
java泛型中?和T有什么区别?
T 代表一种类型加在类上:class SuperClass<A>{}加在方法上:public <T>void fromArrayToCollection(T[] a, Collection<T> c){}方法上的<T>代表括号里面要用到泛型参数,若类中传了泛型,此处可以不传,调用类型上面的泛型参数,前提是方法中使用的泛型与类中传来的泛...原创 2018-01-06 10:06:25 · 9895 阅读 · 3 评论 -
JAVA线程池
一.为什么要用线程池1.减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。2.可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内存,而把服务器累趴下(每个线程需要大约1MB内存,线程开的越多,消耗的内存也就越大,最后死机)。Java里面线程池的顶级接口是Executor,但是严格意义上讲Executor并不是一个线程池,而只是一个执行线程...原创 2017-12-02 17:00:15 · 461 阅读 · 0 评论 -
JAVA数据流之间的转换
http://blog.youkuaiyun.com/liuhenghui5201/article/details/8292552InputStream.read(byte[] b)从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。OutputStream.write(byte[] b) 将 b.length 个字节从指定的 byte 数组写入此输出流。PrintWrite...原创 2018-07-23 15:48:36 · 2256 阅读 · 0 评论 -
String、StringBuffer、StringBuilder区别
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常...原创 2017-12-22 11:00:43 · 290 阅读 · 0 评论