Java基础
文章平均质量分 77
java基础知识点的讲解
小六�
这个作者很懒,什么都没留下…
展开
-
线程,多线程
首先出现线程安全问题是因为在多线程的情况下,因为线程之间的执行是没有规律的,当多个线程访问一个共同的数据进行读写时导致最终结果不正确所出现的问题,而避免这种问题实现线程安全的方式可以使用volatile关键字对这个公共变量进行修饰,保证不同线程对这个变量进行操作时的一致可见性,还有使用锁机制synchronized,在线程访问某个数据时进行加锁操作,这个时候其它线程不能进行访问,只能等该线程读取完成并释放锁后其它线程才能继续访问。原创 2023-10-26 11:58:59 · 28 阅读 · 0 评论 -
线程池的运用
当向线程池提交任务后,线程池会在内部将任务封装为一个 Worker,并将其放入线程池中进行执行,Worker线程会调用其线程对象的 start 方法,从而运行 Worker 的 run 方法。CachedThreadPoo(可缓存线程):线程池的核心线程数为0,最大线程数为Integer.MAX_VALUE,当有新任务提交时,会尝试复用已有线程执行任务,如果没有可用的线程,则创建新线程执行任务。corePoolSize(核心线程数):线程池维护线程的最少线程数量。线程池的原理在于7个核心参数。原创 2023-10-26 11:59:41 · 40 阅读 · 0 评论 -
Java设计模式
单例模式的定义就是保证一个类只有一个实例,并提供全局访问点,其中单例模式又分为懒汉式和饿汉式,我们一起来看一下饿汉式:// 私有构造函数,避免外部创建对象饿汉式的单例模式在类加载的时候就会创建好实例,因此不存在线程安全问题,但是可能会浪费一些内存资源懒汉式// 私有构造函数,避免外部创建对象if (INSTANCE == null){//为空了再new,不为空则不new懒汉式的单例模式是指在第一次使用时才会创建实例,可以延迟实例化的时机,避免了饿汉式的资源浪费问题。原创 2023-10-26 14:33:57 · 31 阅读 · 0 评论 -
对排序的重新理解
通过这个索引值和外层的循环i进行比较,如果不等于i则就可以进行交换,然后继续进行下一轮的排序,每一轮选择最小的元素放到前面就行。-将当前元素与已排序部分的元素比较,找到合适的位置并插入,跟前面的排序一样,通过一个临时变量进行替换操作。判断当前索引值值和下一个元素的大小关系,如果后者更小,则赋值更新索引值。-遍历剩余元素,将当前元素插入到已排序部分的确位置去。遍历要排序的素列表,然后将当前的位置设置一个索引值。-将列表的第一个元素设为已排序的部分。原创 2023-09-22 03:12:20 · 35 阅读 · 1 评论 -
Java 集合
深拷贝和浅拷贝是关于对象拷贝的两个概念,一句话描述的话就是浅拷贝只复制了对象本身和其引用,而深拷贝将对象及其引用的对象一同复制深拷贝:深拷贝是指创建一个新对象以及该对象的所有引用类型属性所引用的对象的拷贝。深拷贝会复制对象及其引用的所有对象,确保每个对象都是独立的,修改其中一个对象不会影响其他对象。浅拷贝:浅拷贝是指创建一个新对象,该对象的属性值与原始对象相同,但是引用类型的属性仍然指向原始对象中的相同对象。简单说就是浅拷贝只是复制了对象的引用而不是实际的数据。原创 2023-10-26 12:00:22 · 35 阅读 · 0 评论 -
自定义异常的运用
自定义异常分为自定义运行时异常,和自定义非运行时异常,自定义运行时异常,需要继承自RuntimeException或者任意运行时异常的类,自定义非运行时异常,需要继承自Exception或者任意非运行时异常的类。原创 2023-09-26 23:59:04 · 154 阅读 · 1 评论