
java基础
文章平均质量分 69
龙腾腾
凡是过往,皆为序章。
展开
-
JAVA String.format的使用,及与 StringBuilder和String ‘+’比较
文章来源:https://blog.youkuaiyun.com/qq_35387940/article/details/103399432这里我选取作为比较的例子是, 在一个url后面拼接参数。关于拼接参数, 无非就几种,一种就是String的 ‘+’ ,一种就是StringBuilder.append(StringBuffer.append) ,还有就是String.format。先来看看这三种的效果:TestStringAppend.java/** * @Author : JCccc * @Crea转载 2022-01-17 21:52:14 · 865 阅读 · 0 评论 -
Java 实体类中的toString方法
文章来源:https://blog.youkuaiyun.com/Sunny5319/article/details/836175451.在Java中每个类都默认继承Object类,除非声明继承某个类。而Object类中有一个叫做toString的方法。该方法返回的是该Java对象的内存地址经过哈希算法得出的int类型的值在转换成十六进制。这个输出的结果可以等同的看作Java对象在堆中的内存地址。例如:package com.cal.toString; public class Test1 { public转载 2022-01-14 23:22:05 · 2423 阅读 · 0 评论 -
Java transient关键字使用小记
文章来源:https://www.cnblogs.com/lanxuezaipiao/p/3369962.html1. transient的作用及使用方法我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。 然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序列化,打转载 2021-12-13 21:19:48 · 155 阅读 · 0 评论 -
setDaemon详解
一、线程JAVA线程分为即实线程与守护线程,守护线程是优先级低,存活与否不影响JVM的退出的线程,实现守护线程的方法是在线程start()之前setDaemon(true),否则会抛出一个IllegalThreadStateException异常。不能操作文件、数据库等资源,避免主线程关闭而未能关闭守护线程的资源,并且它会在任何时候甚至在一个操作的中间发生中断。二、优点及使用场景在主线程关闭后无需手动关闭守护线程,因为会自动关闭,避免了麻烦,Java垃圾回收线程就是一个典型的守护线程,简单粗暴的可以理转载 2021-11-06 14:08:53 · 931 阅读 · 0 评论 -
String、StringBuffer与StringBuilder之间区别
原文地址:https://blog.youkuaiyun.com/itchuxuezhe_yang/article/details/89966303一、Java String 类——String字符串常量简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,这样不仅效率低下,而且大量浪费有限的内存空间,所以经常改变内转载 2020-09-20 09:20:29 · 433 阅读 · 0 评论 -
java中新建对象的五种方式
原文链接:https://blog.youkuaiyun.com/luoyanglizi/article/details/50791907前言面试的时候被问到Java中新建对象的方式有哪些,一阵语噎。脑子里只想起一个new的方式创建对象,这真是个悲剧。正文new关键字创建对象这一种自然是不必多说了,大家都非常的熟悉。MyClass myClass = new MyClass();通过实现Cloneable接口调用clone()方法这种方式相对就用的比较的少了,不知道也无可厚非。实现步骤:1、将想要克转载 2020-09-19 22:52:22 · 596 阅读 · 0 评论 -
android--为什么重写hashCode()和equals(),网上太多错的了,在这里明确一遍
一、重复数据遇到的问题之前的一个项目,阿里趣视频后台返回的数据有一些是重复的,为了避免重复的数据被展示,我循环了一遍,通过contains函数,如果集合中已经有了这个数据,就不再添加,如下: private ArrayList<HomeBean> videoList = new ArrayList<>();for (HomeBean bean : videoInfoBeans) { if (!videoList.contains(bean)) { vid原创 2020-08-24 16:22:07 · 1409 阅读 · 0 评论 -
Map.getOrDefault()方法
文章来源:https://blog.youkuaiyun.com/qq_37974048/article/details/102941761在JDK8之后,对map新增了getOrDefault()方法格式:Map.getOrDefault(key,默认值);Map中会存储一一对应的key和value。如果 在Map中存在key,则返回key所对应的的value。如果 在Map中不存在key,则返回默认值。public class Demo { public static void main(St转载 2020-08-21 20:53:00 · 19267 阅读 · 2 评论 -
Android 栈stact的相关操作
Stack.peek():返回栈顶的值 ;不改变栈的值,查看栈顶的对象而不移除它。Stack.pop():返回栈顶的值 ;会把栈顶的值删除。Stack.push():把项压入堆栈顶部。E push(E item) 把项压入堆栈顶部。 E pop() 移除堆栈顶部的对象,并作为此函数的值返回该对象。 E peek() 查看堆栈顶部的对象,但不从堆栈中移除它。 boolean empty()原创 2020-08-21 19:47:10 · 616 阅读 · 0 评论 -
Android自定义View1--view的绘制流程
https://www.cnblogs.com/huaranmeng/p/12790752.html转载 2020-08-06 14:35:11 · 356 阅读 · 0 评论 -
java-getDeclaredField和getField的区别,Method的Invoke方法,setAccessible() 方法
https://blog.youkuaiyun.com/caicaimaomao/article/details/86611897转载 2020-08-06 14:07:17 · 352 阅读 · 0 评论 -
Java--异或详解
看源码的时候对^有疑问,抽点时间研究一下:一、异或介绍异或是一种基于二进制的位运算,用符号XOR或者 ^ 表示,其运算法则是对运算符两侧数的每一个二进制位,同值取0,异值取1。性质 1、交换律 2、结合律(即(a^ b)^ c == a^ (b^c)) 3、对于任何数x,都有x^ x=0,x^0=x 4、自反性 A XOR B XOR B = A XOR 0 = A二、异或使用异或运算最常见于多项式除法,不过它最重要的性质还是自反性:A ^ B转载 2020-08-04 20:32:34 · 1180 阅读 · 0 评论 -
java- ArrayList线程不安全怎么办?
本篇基本是转载:优快云:沉默王二注:我用的是 OpenJDK 14。一、VectorVector 的源码文档上直截了当地说了,“如果不需要线程安全,推荐使用 ArrayList 替代 Vector。”说实话,在我十多年的编程生涯中,的确很少使用 Vector,因为它的线程安全是建立在每个方法上都加了 synchronized 关键字的基础上,锁的粒度很高,意味着性能就不咋滴。public synchronized boolean add(E e) { modCount++; add原创 2020-08-03 15:12:58 · 8400 阅读 · 0 评论 -
为什么final定义的成员变量,必须赋值?final;成员变量和局部变量的区别
一、final变量final关键字可用于变量声明,一旦该变量被设定,就不可以再改变该变量的值。通常,由final定义的变量为常量。例如,在类中定义PI值,可以使用如下语句:final double PI=3.14;在Java中定义全局常量,通常使用public static final修饰,这样的常量只能在定义是被赋值。public static final double PI_VAULE = 3.14;规范:被定义为final的常量定义时需要使用大写字母命名,并且中间使用下划线进行连接。常转载 2020-08-01 14:26:05 · 3366 阅读 · 0 评论 -
java 构造函数(方法)
一、什么是构造函数java构造函数,也叫构造方法,是java中一种特殊的函数。函数名与类名相同,无返回值。作用:一般用来初始化成员属性和成员方法的,即new对象产生后,就调用了对象了属性和方法。在现实生活中,很多事物一出现,就天生具有某些属性和行为。比如人一出生,就有年龄、身高、体重、就会哭;汽车一出产,就有颜色、有外观、可以运行等。这些,我们就可以将这些天然的属性和行为定义在构造函数中,当new实例化对象时,也就具有这些属性和方法了,没必要再去重新定义了,从而加快了编程效率。构造函数和普通函数的不转载 2020-07-03 20:03:10 · 215 阅读 · 0 评论 -
java 运算符的优先级
1、 该表中优先级按照从高到低的顺序书写,也就是优先级为1的优先级最高,优先级14的优先级最低。2、 结合性是指运算符结合的顺序,通常都是从左到右。从右向左的运算符最典型的就是负号,例如3±4,则意义为3加-4,符号首先和运算符右侧的内容结合。3、 instanceof作用是判断对象是否为某个类或接口类型,后续有详细介绍。4、 注意区分正负号和加减号,以及按位与和逻辑与的区别其实在实际的开发中,不需要去记忆运算符的优先级别,也不要刻意的使用运算符的优先级别,对于不清楚优先级的地方使用小括号去进行替.原创 2020-07-01 15:05:32 · 2003 阅读 · 0 评论 -
java 乐观锁与悲观锁
原文地址:https://blog.youkuaiyun.com/qq_34337272/article/details/81072874何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资转载 2020-06-26 15:37:03 · 184 阅读 · 0 评论 -
sleep和wait的区别,wait需要抛出异常吗?
1、sleep()函数在Thread类中,wait()函数属于Object类,源码如下:sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用了b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep。2、最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。sleep不出让系统资源;wait是进入线程等待池等待,出让系统资源,其他线程可以占用CPU。一般wait不会加时间限制,因为如果wait线程的运行资源不够原创 2020-06-19 15:42:49 · 5263 阅读 · 0 评论 -
java集合框架中contains(),containsKey()和containsValue()的用法:
java集合框架中contains(),containsKey()和containsValue()的用法:List集合的contains()方法用于判断集合中包不包含某个元素,返回值是boolean。 Map集合的containsKey()和containsValue()方法和上面的相同。示例:public static void main(String[] args) {List list = new LinkedList();list.add(“A”);list.add(“B”);list转载 2020-06-10 10:11:58 · 543 阅读 · 0 评论 -
android--java必会问题
final 修饰什么?Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。下面就从这三个方面来了解一下final关键字的基本用法。 1.修饰类 当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。在使用final修饰类的时候,要注意谨慎选择,除非这个类真的在以后不会用来继承或者原创 2020-06-09 17:04:01 · 146 阅读 · 0 评论 -
Android-常用java基础的实例之(String字符串操作)
常用String字符串操作方法:https://blog.youkuaiyun.com/sinat_32194985/article/details/80349501面试实例1:实现一个public int indexOf(String mainStr,String subStr)方法,返回主串mainStr中首次出现子串subStr的位置,比如,主串是abcacb,子串是ac,返回值则是3(从0开始)public int indexOf(String mainStr, String subStr) {r原创 2020-05-14 15:32:10 · 481 阅读 · 0 评论 -
android学习中接触到的常用缩写和名词解释
VM Virtual Machine 虚拟机JVM Java Virtual Machine Java虚拟机原创 2020-05-06 15:32:16 · 644 阅读 · 0 评论 -
android for,forEach中list进行remove抛出异常
最近写了一个语音直播间的项目,背包礼物全部送出之后,要删除这一项并且刷新显示,结果在测试中发现了闪退的情况。我竟然在list的foreach中直接进行remove操作,确实有点傻,在这里记录一下。 方法详解
fill()方法使用参考声明举例:public static void fill(int[] a, form, to, int var)参数:a–数组form–替换开始位置(包括)to–替换结束位置(不包括)var–要替换的值使用参考实例:public class Test { public static void main(String[] args) { ...原创 2020-03-09 21:40:48 · 1509 阅读 · 0 评论 -
Java>>与>>>的区别
>>:带符号右移。正数右移高位补0,负数右移高位补1。比如:4 >> 1,结果是2;-4 >> 1,结果是-2。-2 >> 1,结果是-1。>>>:无符号右移。无论是正数还是负数,高位通通补0。对于正数而言,>>和>>>没区别。对于负数而言,-2 >>> 1,结果是214748...转载 2020-03-03 17:39:18 · 121 阅读 · 0 评论 -
Android 字符串要求长度4-16,且只允许包含字母、数字、下划线
fun isAccordWith(str: String): Boolean { val pattern = Pattern.compile("^[a-zA-Z0-9_]{4,16}+$") val isNum = pattern.matcher(str) return if (!isNum.matches()) { f...原创 2019-10-17 14:58:43 · 1054 阅读 · 1 评论 -
android:java 判断字符串是否全是数字
public boolean isNumeric(String str){ Pattern pattern = Pattern.compile("[0-9]*"); Matcher isNum = pattern.matcher(str); if( !isNum.matches() ){ return false; } return true; ...转载 2019-08-31 15:26:27 · 4691 阅读 · 1 评论 -
Android 当split()分割字符串遇上特殊符号,"."、"|"、"^"等字符
常规分割字符串:String str = "abc|dfg";String[] all=str.split("|");system.out.println(all[0]);结果不对,为啥呢?因为("."、"|"、"^"等字符)都是特殊字符有两种方法,如下:方法一: String str = "abc|dfg"; String[] all=str.split(("\\|"...原创 2019-08-30 16:31:21 · 3991 阅读 · 0 评论 -
Java——try和finally的用法
Java——try和finally的用法一、try的使用在代码中,可以使用try代码块进行防止错误导致应用崩溃try{System.out.println("Hello World!");}这时,在try后面的大括号位置就会报错,这是因为try语句需要和catch语句一起使用try{System.out.println("Hello World");}catch(Excepti...转载 2019-08-07 18:48:17 · 3347 阅读 · 0 评论