![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
SprinLa
长白山的蓝帽衫儿
展开
-
java Pattern和Matcher详解
结论:Pattern与Matcher一起合作.Matcher类提供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持. 单独用Pattern只能使用Pattern.matcher(String regex,CharSequence input)一种最基础最简单的匹配。Java正则表达式通过java.util.regex包下的Pattern类与Matcher类实现(建议在阅读本转载 2017-03-23 17:41:54 · 669 阅读 · 0 评论 -
【LeetCode】字符串反转函数的几个算法 Reverse String
题目:Write a function that takes a string as input and returns the string reversed.Example:Given s = "hello", return "olleh".//反转字符串方法1.最容易想到public String reverseString(String s) {原创 2016-05-18 11:35:38 · 3159 阅读 · 0 评论 -
【Java】StringBuilder、StringBuffer、String 比较
在执行速度方面的比较:StringBuilder > StringBuffer > String 2. StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上操作的,不像String一样创建一些对象进行操作,所以速度就快了。3. StringBuilder:线程非安全的 StringBuffer:转载 2016-05-18 11:24:31 · 218 阅读 · 0 评论 -
总结一下各种IO方式(非常好的文章!)
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,有人认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不相同。所以,转载 2016-07-01 10:47:58 · 1076 阅读 · 0 评论 -
【Java】可变参数
public class VarargType { static void f(Character... args){ System.out.print(args.getClass().getName()); System.out.println(" length: "+args.length); } static void g(Integ原创 2016-05-19 12:23:33 · 307 阅读 · 0 评论 -
【Java】学习笔记一
1.Java中,Set add()不能加基本类型,只能添加对象;有返回值,如果集合中已有重复数据,添加失败,返回false.2.对于数组,null和长度为0的空数组是不一样的。 if (nums1 == null || nums2 == null) return null; if (nums1.length == 0 || nums原创 2016-05-18 15:33:10 · 270 阅读 · 0 评论 -
【Java】java.util.Random()/Random(long seed)
Random()选择的种子是和当前时间相关的,是随机的。Random(Long seed) 种子是固定的,是伪随机的。初始的种子不同:Random()是采用默认生成的种子Random(long seed)是自己设置的种子.对于种子相同的, 生成的随机数序列是一致的.比如new Random(10).nextInt()肯定等于new Random(10).nextInt(转载 2016-05-17 15:57:31 · 1046 阅读 · 0 评论 -
【Java】finalize()和垃圾回收机制
finalize()方法:一旦gc准备释放对象占用的存储空间,将首先调用finalize()方法,并在下一次垃圾回收动作发生时才会真正回收内存。可在此进行重要的清理操作。gc只能释放那些经由new分配的内存,对其他形式获得的内存无法释放。finalize()方法不一定会被调用,所以不能作为通用的清理方法。它不是析构函数,C++中对象一定会被销毁(必须用到析构函数),而java 对象却并非总是被原创 2016-05-19 11:22:56 · 972 阅读 · 0 评论 -
Java的String char()[待补充]
一、Java String不以'\0'结尾。String是一个对象,有方法length()获取长度,不需要格外一个字节存储'\0'做结尾。public void write(String str, int off, int len) throws IOException { synchronized (lock) { char cbuf[];原创 2016-04-23 08:41:11 · 473 阅读 · 0 评论 -
java的final关键字——修饰参数和修饰类
三、修饰参数用来表示这个参数在这个函数内部不允许被修改。class C{ public int cInt = 4; public void setInt(final int cInt){ this.cInt = cInt; cInt = 4;//编译错误:在这个函数内部不允许修改这个参数. }}四、修饰类final修原创 2016-04-20 11:20:28 · 420 阅读 · 0 评论 -
"覆盖"和private
“覆盖”只在某方法是基类的接口的一部分时才会出现。即,必须能将一个对象向上转型为它额基本类型并调用相同的方法。如此,该方法在基类中不能为private,否则它就不是基类接口的一部分。它只是一些隐藏在类中的程序代码,只不过具有相同名称。若子类中以相同名称生成一个public,protected或报访问权限的方法的话,此时你并没有覆盖该犯法,仅是生成了一个新的方法。 “private原创 2016-06-15 21:45:04 · 949 阅读 · 0 评论 -
java.lang.NoClassDefFoundError
今天想测试个类,路径为/workspace/javalearn/src/JVM/VolatileTest.java,没有包含其他类。然后用终端cd到JVM下,javac VolatileTest.java,正常,同目录下生成了VolatileTest.class文件。java VolatileTest,出错了,报错Exception in thread "main" java.lang转载 2016-08-25 11:30:26 · 423 阅读 · 0 评论 -
设计模式——适配器模式
1. 概述 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。2. 解决的问题 即Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。3. 模式中的角色 3.1 目标接口(Target),目标角色:客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口转载 2016-06-22 15:53:24 · 221 阅读 · 0 评论 -
设计模式——装饰者模式
装饰者模式:动态地将职责附加到对象上,若要扩展对象,装饰者模式提供了比继承更弹性的替代方案 要点: 装饰者与被装饰者拥有共同的超类,继承的目的是继承类型,而不是行为装饰者包含一个超类的对象,这样,可以在被装饰者行为前或者行为后加上新的行为,甚至取代原有的行为装饰者会使程序中出现很多小类,增加使用难度使用场景:对象由主体+许多可选的部件或者功能构成,使用继承或者接口会产生转载 2016-06-22 16:04:23 · 372 阅读 · 0 评论 -
Java Math的 floor,round和ceil的总结
floor 返回不大于的最大整数 round 则是4舍5入的计算,入的时候是到大于它的整数round方法,它表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,所以,Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11。ceil 则是不小于他的最小整数看例子转载 2016-06-21 10:36:07 · 326 阅读 · 0 评论 -
Integer,int,==
有如下4条语句:()1234Integer i01=59;inti02=59;Integer i03=Integer.valueOf(59);Integer i04=newInteger(59);以下输出结果为false的是:A转载 2016-06-16 11:06:19 · 727 阅读 · 0 评论 -
接口和抽象类的一道题
下述说法中抽象类与接口的区别正确的有哪些?A 抽象类中可以有普通成员变量,接口中没有普通成员变量。B抽象类和接口中都可以包含静态成员变量。C一个类可以实现多个接口,但只能继承一个抽象类D抽象类中可以包含非抽象的普通方法,接口中的方法必须是抽象的,不能有非抽象的普通方法。正确答案: A B C 你的答案: A C D (错误)D中,Java原创 2016-06-16 11:15:49 · 574 阅读 · 0 评论 -
类的加载
Java类的加载:“类的代码在初次使用时才会加载”。包括:1.创建类的第一个对象之时。2.访问static域或static方法时。其实构造函数也是static方法,只不过关键字未写出。故,严格来说,类实在其任何static成员被访问时加载的。Java中所有事物都是对象,每个类的编译代码都存在于它自己独立的文件中,该文件只有在需要使用程序代码时才会被加载,即“类的代码在初原创 2016-06-15 22:15:25 · 293 阅读 · 0 评论 -
Java程序初始化的顺序
此处讨论Java程序初始化的顺序。一、实例化对象时:1.对象所在类的所有成员变量首先都要进行初始化。这里的成员变量包括实例变量和类变量。即所有的变量都要先初始化。2.所有的类成员完成初始化,才会调用对象所在类的构造函数创建对象。类成员包括成员变量和成员方法,即所有的四类变量和方法:实例变量和类变量,实例方法和类方法,全部初始化完毕。二、Java程序初始化顺序的原则有三,优先原创 2016-05-12 09:07:17 · 606 阅读 · 0 评论 -
【Java】new String(char value[]) valueOf(char data[])
Java的String有一些方法达成相同的作用。通过查看源码可以知道原理。public static String valueOf(char data[]) { return new String(data);}public String(char value[]) { this.value = Arrays.copyOf(value, value.lengt原创 2016-05-18 11:28:50 · 1103 阅读 · 0 评论 -
【Java】String getBytes() toCharArray()
public byte[] getBytes();//获取字节数组public char[] toCharArray() {//获取字符数组 // Cannot use Arrays.copyOf because of class initialization order issues char result[] = new char[value.length]; Syst原创 2016-05-18 11:16:11 · 655 阅读 · 0 评论 -
【Java】String == 和equals()
public static void main(String[] args) { String a = "scd"; String b = null; String c = new String("scd"); System.out.println("a = "+a); System.out.println("b = "+b); System.out原创 2016-05-18 10:51:33 · 326 阅读 · 0 评论 -
Android中LayoutParams的用法
简单说说 自己对 android LayoutParams的理解吧。public static classViewGroup.LayoutParamsextends Objectjava.lang.Object ↳ android.view.ViewGroup.LayoutParams //继承关系以下说明摘自官方文档E文好的可以看看Class Over转载 2016-05-04 11:46:58 · 352 阅读 · 0 评论 -
Java语法问题,构造函数为什么后面还有大括号?
mDialog = new Dialog(context, R.style.Theme_Panel_Volume) { public boolean onTouchEvent(MotionEvent event) { if (isShowing() && event.getAction() == MotionEvent.ACTION_OUTS转载 2016-04-29 12:03:38 · 3110 阅读 · 0 评论 -
Class<?>与Class<T>
Class在实例化的时候,T要替换成具体类Class它是个通配泛型,?可以代表任何类型转载 2016-05-04 11:07:15 · 642 阅读 · 0 评论 -
java里类方法和实例方法区别
原文章链接:http://blog.sina.com.cn/s/blog_68c1864b01010nog.html我们已经知道类体中的方法分为实例方法和类方法两种,用static修饰的是类方法。二者有什么区别呢?当一个类创建了一个对象后,这个对象就可以调用该类的方法。当类的字节码文件被加载到内存时,类的实例方法不会被分配入口地址,当该类创建对象后,类中的实例方法才分配入口地址转载 2016-04-18 13:18:41 · 683 阅读 · 0 评论 -
Java命名规范
一、命名规范1、 项目名全部小写(?)2、 包名全部小写3、 类名首字母大写,如果类名由多个单词组成,每个单词的首字母都要大写。如:public class MyFirstClass{}4、 变量名、方法名首字母小写,如果名称由多个单词组成,每个单词的首字母都要大写。如:int index=0; public void toStr转载 2016-04-18 13:47:33 · 340 阅读 · 0 评论 -
【protected权限】java浅复制、深复制中,为什么在派生类中覆盖基类的clone()方法,并声明为public
来谈谈protected访问权限问题。看下面示例1:Test.javaclass MyObject {} public class Test { public static void main(String[] args) { MyObject obj = new MyObject(); obj.clone(转载 2016-04-18 15:47:51 · 431 阅读 · 0 评论 -
Java之Clone()
实现克隆的方法步骤:1.实现Cloneable接口;2.重载Object类中的Clone方法,定义为public;3.在重载中,调用super.clone()方法;(浅克隆)4.成员变量中有对象类型时,要对对象分别调用.clone()方法。(深克隆)package com.selfCode;import java.util.Date;/** * 练习Clone *原创 2016-05-12 10:45:46 · 192 阅读 · 0 评论 -
“Java语言中的方法属于类中的成员(member)”为什么不对
类成员必须是静态的,而方法可能是静态方法,也可能是非静态方法。静态方法是类成员,非静态方法是实例成员。原创 2016-05-12 08:49:16 · 5787 阅读 · 0 评论 -
java的final关键字——修饰方法
二、final修饰方法final修饰的方法不能被子类覆盖,但是可以被子类使用和重载。class Aa{ public int dInt = 0; public int getdInt() { return dInt; } public final void setdInt(int dInt) { System.out.p原创 2016-04-20 11:19:52 · 799 阅读 · 0 评论 -
java的static关键字——static成员方法
static方法是类的方法,不需要创建对象就可以被调用。static方法中:1.不能使用this和spuer关键字。2.不能调用非static方法3.不能访问非static类的变量static方法一个很重要的用途是实现单例模式。package com.wxy;/** * 用static实现单例模式:只能有一个实例 * 实现原创 2016-04-20 12:01:50 · 293 阅读 · 0 评论 -
java的static关键字——static变量
static变量即静态变量,也叫类变量。static变量属于类,在内存中只有一个复制(所有实例都指向同一个内存地址),只要所在类被加载,即被分配空间,就可以被使用。与之对应的是实例变量,必须对象呗创建后才会分配空间,才能被使用,在内存中存在多个复制。引用方式:1、类.变量 2、对象.变量static变量不能在成员函数内部(方法体内)定义。public class Test原创 2016-04-20 12:06:48 · 290 阅读 · 0 评论 -
System.out.println(s) 打印值为对象引用时,调用toString()方法。
System.out.println(s) 打印值为对象引用时,调用toString()方法。对象的类中可以根据需求重写toString()方法。转载 2016-04-22 14:58:07 · 570 阅读 · 0 评论 -
IntelliJ 自动创建main函数 for循环 try catch模块
创建main函数:输入psvm,回车创建for循环:输入fori,回车学习更多的快捷键,让快速开发事半功倍(*^__^*)原创 2016-04-19 16:52:57 · 1291 阅读 · 0 评论 -
【Java】Thread学习笔记
1.可在任何一任务的内部,调用Thread.currentThread()来获取对驱动该任务的Thread对象的引用。2.重写类的toString()函数,执行System.Out.println(this),将输出新定义的字符串。3.Thread.setPriority可以改变线程的优先级,要在run()方法中而不是构造函数中,否则Executor还没有开始执行任务。4.守护线程/后原创 2016-05-16 19:45:43 · 467 阅读 · 0 评论 -
Thread.sleep() 和 Thread.yield() 区别
1. Thread.yield(): api中解释: 暂停当前正在执行的线程对象,并执行其他线程。 注意:这里的其他也包含当前线程,所以会出现以下结果。 public class Test extends Thread { public static void main(String[] args) { for (int i转载 2016-05-16 16:02:36 · 404 阅读 · 0 评论 -
String学习杂笔
一、字符串转换编码public static String translate(){ String str="你好,我是喵喵.hello,I'm Delia."; String result = ""; try{ result = new String(str.getBytes("ISO-8859-1"),"GBK");//把字节数组转为字符串,第一原创 2016-05-16 15:51:41 · 258 阅读 · 0 评论 -
Java的类成员变量,实例变量,类变量,成员方法,实例方法,类方法
总是被这些相似的概念搞晕,查阅了资料后做个小总结,以变量为例,方法辨析类似。1.多胞胎名字汇总辨析成员变量和成员方法是范围最大的定义,提到成员变量就可以理解成你所定义在一个类体中的各类变量的统称,成员方法亦如是。java类的成员变量包括实例变量和类变量,成员方法包括实例方法和类方法。那么,什么是实例变量和类变量呢?从名字分析:实例变量,是新建了实例后才能用的变量。类变量,是原创 2016-04-19 10:52:45 · 4372 阅读 · 0 评论 -
cannot resolve symbol R 解决方法
Build -> Clean ProjectTools -> Android -> Sync Project With Gradle Files不成功就多试几次原创 2016-05-04 17:21:30 · 869 阅读 · 0 评论