java基础
java基础语法
ewenll
前路漫漫,当克己,当慎独。
展开
-
List在遍历时删除元素问题
背景:业务中经常会涉及遍历list时对集合进行插入或者删除操作文章目录1. 错误方式2. 解决方法1. 错误方式先看看下面几段代码,1是foreach的方式去遍历list并删除元素,2是用迭代器的方式遍历list并删除元素,3是下标遍历1、 foreachpublic void testDel(){ List<Integer> list = Lists.newArrayList(); for(int i=1;i<=5;i++){ .原创 2020-09-24 14:10:40 · 452 阅读 · 1 评论 -
我不允许你还不会的——Java中Integer和int的相关比较
Java中Integer和int的相关比较,是非常基础的内容,每个程序猿都应该掌握。原创 2020-08-16 10:05:06 · 1504 阅读 · 5 评论 -
Comparator的compare方法如何定义升序降序
最近做算法题用了Comparator接口下的compare方法,思考了一下升序和降序的规则是如何来的,现在做一个记录,方便以后回顾。原创 2020-08-16 00:25:01 · 1009 阅读 · 0 评论 -
Java 注解你还不会,怎么学习SpringBoot
文章目录1. 注解1.1 注解的作用1.2 JDK中预定义的注解1.3 自定义注解1. 注解注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。可以把注解理解为代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。通过注解,开发人员可以在不改变原有代码和逻辑的情况下,在源代码中嵌入补充信息。1.1 注解的作原创 2020-06-03 15:47:23 · 4642 阅读 · 18 评论 -
Java反射机制你还不会?那你怎么看Spring源码
1.Java代码在计算机中经历的阶段:三个阶段Person.java经过javac编译,变为Person.class文件(字节码文件),字节码文件中,主要有类的属性、构造函数、方法,当然还有类的其他信息,这个阶段称为源码阶段,通过类加载器进入内存,在内存中生成一个Class对象,这个阶段为Class类对象阶段,一个类的Class对象中存储了类的全部信息,使用这个类对象的阶段称为Runtime运...原创 2020-05-01 20:16:49 · 2430 阅读 · 14 评论 -
ThreadLocal,你真的了解吗?
在Java开发工程师的面试中,ThreadLocal 也是会被经常问到的,面试官一般会问java中的引用类型,然后再问ThreadLocal,这篇文章,帮助你解决掉ThreadLocal问题。原创 2020-04-29 16:21:07 · 1850 阅读 · 16 评论 -
Java多线程volatile底层原理详解
1.volatile的作用1)保证线程间的可见性2)防止指令重排public class Test implements Runnable { boolean running = true; @Override public void run() { while(running){ } } public static void main(String[] args) { ...原创 2020-04-13 15:24:42 · 1166 阅读 · 0 评论 -
Java线程池
1.什么是线程池线程池就是由很多线程,加上一个任务(实现了Runnable接口的类)队列组成,线程池中的线程,自己可以定义,当向线程池中方任务时,如果有线程空闲,线程就将任务带给CPU处理,如果没有线程空闲,就存储在任务队列中。2. 为什么要用线程池1)可以提高效率,当有很多的线程需要执行的时候,需要频繁的创建和销毁线程,很大程度上影响处理效率,利用线程池,可以不用频繁的创建和销毁线程,重用...原创 2020-04-07 22:29:37 · 560 阅读 · 0 评论 -
Java多线程与高并发笔记(CAS、锁升级)
1.CAS compare and swap 或者是compare and exchange ,就是用不上锁的方式来保证数据一致,实现多线程间的同步,java中的锁升级都是用CAS的方式,包括ActoicInteger等类,底层都是使用CAS,CAS就是读入一个变量,然后改动后,在写入之前,去比较原来的变量值是否发生了改变,如果没有改变,就写入,如果改变了,就重新读入,然后一直重复这样的操作。...原创 2020-04-05 11:37:45 · 711 阅读 · 1 评论 -
Java高并发编程基础synchronized及底层原理
Synchronizedsynchronized关键字保证临界资源(多个线程共享的数据资源)同时只能被一个线程使用,保证共享数据操作的完整性,主要锁临界资源对象、this(当前对象) 、class对象,Java中,每个对象都对应有一个可称为“互斥锁的标记”,这个标记保证在任一时刻,只能有一个线程访问改对象。锁普通对象Object o = new Object(); @Override p...原创 2020-04-04 15:05:42 · 515 阅读 · 0 评论 -
Java基础LinkedList用作栈和队列
LinkedList这个类的结构public class LinkedList extends AbstractSequentialListimplements List, Deque, Cloneable, SerializableLinkedList是一个继承于AbstractSequentialList的双向链表。实现了Deqeue接口,它也可以被当作堆栈、队列或双端队列进行操作。L...原创 2020-04-03 23:05:11 · 3027 阅读 · 0 评论 -
Java基础Thread类常用方法
Thread类中常用的方法构造方法:无参的构造方法 Thread()Thread(Runnable target) 传入一个实现了Runnable接口的对象Thread(Runnable target, String name) name为给线程取的名字Thread(String name) name为给线程取的名字普通方法:long getId() 返回线程的id Strin...原创 2020-04-03 16:57:09 · 353 阅读 · 0 评论 -
java数据类型转换
public static void main(String[] args) { char c = '0'; System.out.println(c + 1); }上面两行简单的代码,结果是什么?答案是49,整型、字符型、浮点型的数据在混合运算中相互转换,容量小的类型自动转换为容量大的类型,数据类型按容量大小排序为byte,short,char–...原创 2020-03-28 19:17:58 · 257 阅读 · 0 评论