java基础
文章平均质量分 76
Pluto372
记录自己的学习笔记,同时方便自己忘了可以容易复习
展开
-
枚举(enum)
Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一年的 12 个月份,一个星期的 7 天,方向有东南西北等。Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割。例如定义一个颜色的枚举类。以上枚举类 Color 颜色常量有 RED, GREEN, BLUE,分别表示红色,绿色,蓝色。每个枚举都是通过 Class 在内部实现的,且所有的的。原创 2023-10-12 21:43:05 · 236 阅读 · 0 评论 -
多线程——synchronized详解
互斥同步是一种最常见也是最主要的并发正确性保障手段。同步是指在多个线程并发访问共享数据时,保证共享数据在同一个时刻只被一条(或者是一些, 当使用信号量的时候)线程使用。而互斥是实现同步的一种手段,临界区(Critical Section)、互斥量 (Mutex)和信号量(Semaphore)都是常见的互斥实现方式。因此在“互斥同步”这四个字里面,互斥是因,同步是果;互斥是方法,同步是目的。在Java里面,最基本的互斥同步手段就是synchronized关键字。原创 2022-10-13 16:49:32 · 3319 阅读 · 0 评论 -
java——线程池
一、线程池线程池可以看做是线程的集合。它的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后 启动这些任务,如果线程数量超过了最大数量超出数量的线程排队等候,等其它线程执行完毕, 再从队列中取出任务来执行。他的主要特点为:线程复用;控制最大并发数;管理线程。线程复用:每一个 Thread 的类都有一个 start 方法。 当调用 start 启动线程时 Java 虚拟机会调用该类的 run 方法。 那么该类的 run() 方法中就是调用了 Runnable 对象的 run(原创 2021-12-10 10:37:01 · 14858 阅读 · 0 评论 -
Java &、&&、|、||、^、<<、>>、~、>>>等运算符
*Java运算符大致分为逻辑运算符(&&,||,!)、算数运算符(+, -, , / ,+=)、位运算符(^,|,&)、其他运算符(三元运算符)&(位与)&:位与 运算规则是将两边的数转换为二进制位,然后运算最终值(一假则假)(1&1=1 , 1&0=0 , 0&1=0 , 0&0=0)3—>0011, 5—>01013&5——>011 & 101 = 1所以最终结果为:1&原创 2021-11-12 11:20:43 · 742 阅读 · 0 评论 -
java 8新特性——函数式接口
函数式接口函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。函数式接口可以被隐式转换为 lambda 表达式。常用的函数式接口SupplierSupplier,它的中文意思为供应商、提供者。具体的方法也是相当的简单,不接受任何参数,返回一个结果/***源码**/@FunctionalInterfacepublic interface Supplier<T> { /** * Gets a re原创 2021-10-27 17:42:31 · 132 阅读 · 0 评论 -
自定义注解,实现依赖注入
自定义注解,实现依赖注入我们在学习框架的时候使用过各种各样的注解,框架本质就是注解+反射+设计模式的结合,我们在这通过自定义注解简单的实现在属性中注入值。@Component("user")// 相当于配置文件中 <bean id="user" class="当前注解的类"/>public class User { @Value("王也") // 相当于配置文件中 <property name="name" value="王也"/> public Strin原创 2021-01-07 13:56:58 · 582 阅读 · 0 评论 -
面向对象编程七大编程原则概述详解
面向对象编程原则概述1.1 软件的可维护性和可复用性可维护性较低的软件设计,通常由于如下四个原因造成:过于僵硬(Rigidity) :灵活性不够过于脆弱(Fragility) :健壮性(鲁棒性)不够复用率低(Immobility) :不能重用黏度过高(Viscosity) :高耦合,关联性太高一个好的系统设计应该具备如下三个性质:可扩展性(Extensibility)灵活性(Flexibility)可插入性(Pluggability)程序设计原则:高内聚,低耦合面向对象编程的原创 2020-12-11 20:39:07 · 1477 阅读 · 0 评论 -
Collection集合遍历
Collection集合遍历一、集合(Collection)接口的介绍1.1数组和集合的区别:1:长度的区别:数组的长度固定集合的长度可变2:内容:数组存储的是同一种类型的元素集合可以存储不同类型的元素(但是一般我们不这样干…)3:元素的数据类型:数组可以存储基本数据类型,也可以存储引用类型集合只能存储引用类型(你存储的是简单的int,它会自动装箱成Integer)1.2关系图1.3 Java集合框架的接口:(1)Java集合框架的实现类:(2)应用场景:List基础知识co原创 2020-12-02 21:46:57 · 835 阅读 · 1 评论 -
反射
反射反射体现运行时的动态性public class NewInstance1 { //体现反射的动态性 public static void main(String[] args) throws Exception { int i = new Random().nextInt(3); String classPath=""; switch (i){ case 0: classPath=转载 2020-11-30 21:53:27 · 601 阅读 · 0 评论 -
深入理解JVM类核心——类加载机制
类加载机制定义:JVM把class文件加载到内存,并对数据进行校验、解析和初始化,最终形成JVM可以直接使用的Java类型的过程。原创 2020-11-30 21:51:29 · 151 阅读 · 0 评论 -
让初学者会写Lambda表达式--java
Lambda表达式Java 8的一个大亮点是引入Lambda表达式(匿名函数),使用它设计的代码会更加简洁。当开发者在编写Lambda表达式时,也会随之被编译成一个函数式接口。下面这个例子就是使用Lambda语法来代替匿名的内部类,代码不仅简洁,而且还可读。...原创 2020-11-30 21:33:20 · 164 阅读 · 0 评论 -
注解
注解什么是注解(Annotation)?Annotation是从JDK5.0开始引入的新技术。Annotation的作用:– 不是程序本身,可以对程序作出解释。(这一点,跟注释没什么区别) – 可以被其他程序(比如:编译器等)读取。(注解信息处理流程,是注解和注释的重大区别。如果没有注解信息处理流程,则注解毫无意义)Annotation的格式:– 注解是以“@注释名” 在代码中存在的,我们最常见的一个注解就是在重写父类方法或者实现接口的时候,方法上边有一行@Override,这个就是注解。还可原创 2020-11-28 20:10:27 · 159 阅读 · 0 评论 -
java基础学习之IO流篇
IO流在学习io流之前,我们先简单了解一下流的概念首先,流是什么流(Stream)是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输出操作都是以“流”的方式进行。大部分程序都需要输入/输出处理,比如从键盘读取数据、向屏幕中输出数据、从文件中读取或者向文件中写入数据、在一个网络连接上进行读写操作等。输入流与输出流与流相关的对象大部分都在 java.io包中。流具有方向性,至于是输入流还是输出流则是一个相对的概念一般以内存为参考,如果数据的流向是内存至设备,我们成为输出流原创 2020-11-24 20:59:53 · 461 阅读 · 0 评论 -
for循环实现等腰三角形
我的第一条博客用for循环来实现等腰三角形: //请用for循环打印等腰三角形 public static void triangle() { //外层循环控制行数 5行 for(int i=1 ; i<=5 ;i++) { //打印空格 4 3 2 1 for(int j = i; j <= 4 ;j++) { System.out.print(" "); } //打印星星 1 3 5 7 9 /*很多初学者大多不清楚K<=(2*i)原创 2020-10-16 16:54:44 · 12099 阅读 · 7 评论 -
数组去重(新手初学数组练习题)
简单的数组去重,适合初学者的练习题!(我在作业中发现这个题挺有意思的,同时我也会把我初学数组遇到的问题分享给大家)题目:请将数组{1,2,3,2,4,1,4,3}中重复的元素单独存入一个新的数组。要求:新数组中元素不重复出现。我刚刚一开始的想``法是这样的 int[] arr = {1,2,3,2,4,1,4,3}; int count = 0; //计数器 int[] newarr = new int[count]; for (int i = 0; i < arr.length原创 2020-10-17 16:44:52 · 374 阅读 · 0 评论