
java
啦啦啦啦拉拉☜
这个作者很懒,什么都没留下…
展开
-
Java中抽象类和接口的区别
含有抽象方法的类即为抽象类;但抽象类不一定含有抽象方法; 接口中的方法全部为抽象方法,可以说是特殊的抽象类;接口使用 interface 修饰;抽象类使用 abstract class 修饰;接口中的所有成员变量都是 public static final 修饰的,不可改变;所有方法使用 public abstract 修饰,即使不写也是;而因为抽象类中的成员变量和方法可以用其他修饰符;...原创 2020-02-12 15:41:20 · 164 阅读 · 0 评论 -
最大不重复子串长度
public static int lengthOfLongestSubstring(String s) { int max=0; int from=0; for (int i=0;i<s.length();i++){ char c=s.charAt(i); for (int j=from;j&l...原创 2020-02-07 11:01:18 · 240 阅读 · 0 评论 -
最大子序列和
//最大子序列和 public int maxSubArray(int []nums){ int sum=0; int res=nums[0]; for(int i=0;i<nums.length;i++){ if(sum>0){ sum+=nums[i]; ...原创 2020-02-07 10:59:55 · 128 阅读 · 0 评论 -
Java求两个正整数最大公约数,最小公倍数
//最大公约数,最小公倍数算法public class GongYue_Bei { public static void main(String[] args) { System.out.println(gcd(100,105)); } //递归求最大公约数: public static int gcd1(int p, int q){ ...原创 2019-10-20 16:40:47 · 564 阅读 · 0 评论 -
乐观锁和悲观锁
乐观锁:乐观锁:每次拿数据的时候都认为别人没有修改过,不会上锁,但在更新的时候会判断在此期间有没有被更新过,高所使用CAS算法和版本号机制来实现,适用于读多写少的情况。CAS算法:CAS即“比较并替换”,有三个基本操作数:内存地址V,旧的预期值A,要修改的新值B,更新一个变量时,会判断内存地址V的值是否和旧的预期值A相同,如果相同,才将内存地址V中的值更新为B,如果不相同,则更新失败。CAS...原创 2019-10-19 19:58:35 · 137 阅读 · 0 评论 -
线程池-工作原理与使用场景
线程池的优点在学习线程池之前,我们要先了解一下为什么要使用线程池,也就是说使用线程池的好处是什么,线程池有哪些优点:降低资源消耗:通过重复利用已创建的线程降低线程创建和销毁所造成的消耗;一般情况下使用线程,是在使用时创建,使用完销毁,十分消耗资源。提高响应速度:当任务到达时,任务可以不需要等待线程创建就可以立即执行;提高现成的可管理性:线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源...原创 2019-10-19 19:38:33 · 379 阅读 · 0 评论 -
Java类加载机制
Java类的生命周期:1.加载:在内存中生成Class对象,作为数据的入口2.验证:确认Class文件中的字节流包含的信息,是否符合当前虚拟机的要求3.准备:在方法区中分配变量所需的内存空间4.解析:JVM将常量池中的符号引用替换为直接引用字面量:代码中的一个固定值的表示法。例如: int n=1; 1就是字面量String str=“abc”; ...原创 2019-10-13 11:07:42 · 173 阅读 · 0 评论 -
java中的final,finally和finalize
final:final属于关键字;final修饰的变量必须给定初值,只能引用,不能修改;final修饰的方法不能被覆盖;final修饰的类不能被继承;finally:用于异常处理,finally块必定执行;try{}后必须跟catch(){}或者finally{}中至少一个;finally中的return会覆盖try和catch中的return;finally一定会在return...原创 2019-07-07 09:12:11 · 114 阅读 · 0 评论 -
java多线程详解(包含synchronized,Lock详解)
Java多线程详解1.进程与线程2.多线程操作3.多线程特性4.线程安全4.1 synchronized实现线程安全4.1.1同步处理4.1.2 synchronized底层实现(对象的Monitor机制):4.1.3 JDK1.6之后对synchronized的优化:4.2 Lock实现线程安全4.2.1Lock使用方式4.2.2Lock接口的重要方法4.3 synchronized与Lock的...原创 2019-07-06 12:24:25 · 208 阅读 · 0 评论 -
java简单的递归
递归就是自己直接或者间接调用自己://递归实现6的阶乘 6!public class Main { public static void main(String[] args) { System.out.println(value(6)); } public static int value(int v) { //判断v是否为1,为...原创 2019-05-14 16:32:53 · 504 阅读 · 0 评论 -
java简单小程序=》判断一个字符串中的数字个数
判断字符串中的数字个数:public static void main(String[] args) { System.out.println(isnumberic("wadas54asd2aw3")); } public static int isnumberic(String str){ int count=1; for(int...原创 2019-04-14 17:01:50 · 1317 阅读 · 0 评论 -
Java中 String, StringBuffer 和 StringBuilder区别浅析
String:1.拼接字符串时每次都会产生新的空间,浪费空间和内存使用,因此在操作少量字符串的时候使用;2.拼接底层自动优化为StringBuilder,并且调用StringBuilder的append()方法进行拼接,结果又调用toString()方法将其转换为String.3.使用final修饰,一旦创建不能被更改,线程不安全StringBuffer:在多线程,操作大量字符串的情况下...原创 2019-04-17 10:11:11 · 179 阅读 · 0 评论 -
java接口和继承
1.继承如果一个类要实现另一个类中的方法,而又不想在重复写一遍,这时候就可以使用继承,继承主要是为了减少重复的,缩减代码量。关键字extends格式:子类 extends 父类{}如:public class A { public static int add(int a,int b){ return a+b; }}public class B ...原创 2019-04-17 09:48:41 · 144 阅读 · 0 评论 -
java "=="和“equals”区别
先来一段小程序:public static void main(String[] args) { String a=new String("a"); String b=new String("a"); System.out.println(a.equals(b)); //输出true System.out.println(a==...原创 2019-04-17 08:59:56 · 133 阅读 · 0 评论 -
java逆置字符串(字符数组)(最简单,易看懂)
java逆置字符串(字符数组)(此字符串中的小字符串使用符号隔开)要求:不改变使用‘符号’隔开的小字符串中的字符顺序,逆置后也为此格式。=====》例如:“isd am sad asd lalala” 逆置为:“isd am sad asd lalala”public static void swap(char[] chars,int a,int b){ //逆序字符数组函数swap ...原创 2019-04-13 21:44:26 · 2762 阅读 · 2 评论 -
面向对象(封装,继承,多态),代码块,内部类
1.代码块: 普通代码块:定义在方法中的代码块 使用{}定义) 静态代码块:使用static定义的代码块 根据所在的类不同可以分为两种: 1.非主类中的静态代码块 2.主类中的静态代码块 在主类中定义的代码块优于主方法(main)执行; 在...原创 2019-04-07 16:48:45 · 210 阅读 · 1 评论