自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(116)
  • 资源 (3)
  • 收藏
  • 关注

原创 Java基础知识总结(84)

如果Lambda 表达式的代码块只有一条代码,还可以在代码块中使用方法引用和构造器引用。匿名内部类可以为任意接口创建实例——不管接口包含多少个抽象方法,只要匿名内部类实现
所有的抽象方法即可;Lambda 表达式与匿名内部类一样,都可以直接访问"effectively final"的局部变量,以及外部
类的成员变量(包括实例变量和类变量)。匿名内部类实现的抽象方法的方法体允许调用接口中定义的默认方法;Lambda 表达式创建的对象与匿名内部类生成的对象一样,都可以直接调用从接口中继承的默认
方法。

2024-05-05 23:01:36 398

原创 Java基础知识总结(83)

用@FunctionalInterface注解标注,接口可以包含多个默认方法、类方法,私有方法。Lambda 表达式只能实现一个方法,因此它只能为
只有一个抽象方法的接口(函数式接口)创建对象。形参列表:Java编译器可以自动推断参数类型,因此可以省略参数的数据类型,其次,如果参数列表只有1个参数时,小括号可以省略。List<String> list = List.of("张麻子","师爷","黄老爷");//如果注解中有且只有一个注解,并且属性名称叫做value,使用注解是可以不写属性名称的。

2024-05-05 23:01:03 728

原创 Java基础知识总结(82)

ConcurrentHashMap中的一个段称为Segment,Segment继承了ReentrantLock,所以一个段又是一个ReentrantLock。JDK 1.7的ConcurrentHashMap的锁机制基于粒度更小的分段锁,分段锁其实是一种锁的设计,并不是具体的一种锁,对于ConcurrentHashMap而言,分段锁技术将Key分成一个一个小Segment存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一段数据的时候,其他段的数据也能被其他线程访问,能够实现真正的并发访问。

2024-04-30 23:28:48 130 1

原创 Java基础知识总结(81)

和非线程安全的ArrayList很像,其核心方法是,add()、set()、remove()等方法,CopyOnWriteArrayList是线程安全的,由于要操作整个数组,开销比较大,在操作数组的过程中,其数组长度通常保持的很小,不会出现较大的扩容,添加一个元素就新数组长度就增加1,只读操作多于可变操作。不直接在原有内存块上进行写操作,而是将内存复制一份,在新的内存中进行写操作,写完之后,再将原来的指针(或者引用)指向新的内存,原来的内存被回收。开销较小,不需要在内核态和用户态之间的。

2024-04-30 23:27:44 221

原创 Java基础知识总结(80)

AQS是CLH队列的一个变种,主要原理和CLH队列差不多,AQS队列内部维护的是一个FIFO的双向链表,这种结构的特点是每个数据结构都有两个指针,分别指向直接的前驱节点和直接的后继节点。当获取锁的线程释放锁以后,会从队列中唤醒一个阻塞的节点。添加完成后,自旋获取前一个节点的状态,判断前一个节点有没有释放锁,没有释放继续获取,获取到则执行同步代码块,获取不到该线程则处于死锁状态。4、头节点线程完成任务后,释放了同步状态,然后会唤醒它的后继节点,同时后继节点的线程被唤醒后还需要检查自己的前驱节点是不是头节点。

2024-04-29 21:53:38 504 1

原创 Java基础知识总结(79)

CONDITION(-2):waitStatus为-2时,表示该线程在条件队列中阻塞(主要在Condition中使用),表示节点在等待队列中,当持有锁的线程调用了CONDITION的signal()方法之后,节点会从该CONDITION的等待队列转移到该锁的同步队列上,去竞争锁(注意:这里的同步队列就是我们讲的AQS维护的FIFO队列,等待队列则是每个CONDITION关联的队列)。每个节点与等待线程关联,每个节点维护一个状态waitStatus,waitStatus的各种值以常量的形式进行定义。

2024-04-29 21:53:03 439

原创 Java基础知识总结(78)

1. 进入synchronized块的内存语义是把在synchronized块内使用到的变量从线程的工作内存中清除,这样在synchronized块内使用到该变量时就不会从线程的工作内存中获取,而是直接从主内存中获取。如果当前线程已经拥有该monitor,只是重新进入,则进入monitor的进入数加1,所以synchronized关键字实现的锁是可重入的锁。如果monitor的进入数为0,则该线程可以进入monitor,并将monitor进入数设置为1,该线程即为monitor的拥有者。

2024-04-28 23:05:59 482 1

原创 Java基础知识总结(77)

如一个变量被volatile修饰后,表示当一个线程修改共享变量后,其会立即被更新到主内存中,其他线程读取共享变量时,会直接从主内存中读取。修饰的方法叫做同步方法,修饰的代码块叫做同步代码块,被synchronized修饰的方法或则代码,也叫做临界区,临界区的特点在同一时刻有且只能有一个线程访问。然而,JMM 这样的规定可能会导致线程对共享变量的修改没有即时更新到主内存,或者线程没能够及时将共享变量的最新值同步到工作内存中,从而使得线程在使用共享变量的值时,该值并不是最新的。所有的共享变量都存储于主内存。

2024-04-28 23:04:58 729 1

原创 Java基础知识总结(76)

1. interrupt()是实例方法,用于为正在运行的线程添加中断标记,当线程正在运行时,该方法并不会影响线程的运行,如果线程处于WAITING或者TIMED_WAITING状态时,调用该方法时,线程会抛出中断异常。2. interrupted()是类方法,用于检测线程是否有中断标记,如果线程有中断标记,调用该方法时会清除标记,清除标记后再次调用该方法会返回false,除非再次为线程添加中断标记。//中断线程 并消除中断标记 如果线程有标记返回ture 没有标记返回false。//线程wait()

2024-04-27 23:25:28 701

原创 Java基础知识总结(75)

Thread类提供了setPriority(int newPriority)、getPriority()方法来设置和返回指定线程的优先级,其中setPriority()方法的参数可以是一个整数,范围是1~10之间,也可以使用Thread类的如下3个静态常量。每个线程执行时都具有一定的优先级,优先级高的线程获得较多的执行机会,而优先级低的线程则获得较少的执行机会。每个线程默认的优先级都与创建它的父线程的优先级相同,在默认情况下,main线程具有普通优先级,由main线程创建的子线程也具有普通优先级。

2024-04-27 23:24:31 568 1

原创 Java基础知识总结(74)

2、被Thread.sleep()、LockSupport.park()方法所阻塞的线程有一个特点,当被阻塞线程的Thread.interrupt()方法调用时,被阻塞线程的中断标志将被设置,该线程将被唤醒。yield()只是让当前线程暂停一下,让系统的线程调度器重新调度一次,线程调度器会从线程就绪队列里获取一个线程优先级高的线程,当然完全可能的情况是:当某个线程调用了yield()方法暂停之后,线程调度器又将其调度出来重新执行。

2024-04-25 23:30:47 449

原创 Java基础知识总结(73)

static void sleep(long millis,int nanos):让当前正在执行的线程暂停millis毫秒加nanos毫微秒,并进入阻塞状态,该方法受到系统计时器和线程调度器的精度与准确度的影响。当前线程调用 sleep()方法进入阻塞状态后,在其睡眠时间段内,该线程不会获得执行的机会,即使系统中没有其他可执行的线程,处于sleep()中的线程也不会执行,因此sleep()方法常用来暂停程序的执行。//此时只有main线程运行 调用sleep()休眠的是mian线程。

2024-04-25 23:29:34 634

原创 Java基础知识总结(72)

守护线程创建的线程也是守护线程。在守护线程中创建的线程,新的线程都是守护线程。如果T2线程执行过程中调用为了T1线程的join(long millis)方法,T2线程最多等待T1线程millis毫秒,到达时间后,如果T1线程没有结束,则和T2线程交替执行。join()方法相当于插入,例如在T2线程中调用了线程T1.join()方法,则T2线程会一直等待T1线程执行结束后再继续执行。在后台运行的,并为其他的线程提供服务的线程被称为“后台线程”,又称为“守护线程”,JVM的垃圾回收线程就是典型的后台线程。

2024-04-23 23:27:56 410

原创 Java基础知识总结(71)

注意:不要对处于死亡状态的线程调用start()方法,程序只能对新建状态的线程调用start()方法,对新建状态的线程两次调用start()方法也是错误的。System.out.println("线程的状态:"+t.getState());System.out.println("线程的状态:"+t.getState());System.out.println("线程的状态:"+t.getState());System.out.println("线程抛出异常后:"+t.isAlive());

2024-04-23 23:27:13 410

原创 Java基础知识总结(70)

/只关乎在运行过程中的取消状态,参数决定cancel执行与否,与返回值无关。//为了让线程thread1尽快执行,让主线程休眠2秒。//为了让线程thread1尽快执行,让主线程休眠2秒。//为了让线程thread1尽快执行,让主线程休眠2秒。* 线程在等待其他线程释放锁时,会处于该状态。//线程执行之后取消 无法取消 返回false。//继承Callable接口,并实现call()方法。//线程执行过程中返回false。//线程执行前 返回false。//线程执行之后 返回true。

2024-04-22 20:22:42 396 1

原创 Java基础知识总结(69)

当一个程序进入内存运行时,即变成一个进程,堆栈、自己的程序计数器和自己的局部变量,但不拥有系统资源,它与父进程的其他线程共享该进程所拥有的全部资源。因为Runnable接口中没有start()方法,因此启动线程时,必须将继承了Runnable接口的类的对象通过Thread类的构造进行包装,然后调用Thread#start()方法启动线程。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。* 任务被中断,被取消,或者发生异常,都会返回true。

2024-04-22 20:21:29 351

原创 Java基础知识总结(68)

如果对象流中的对象和新类中包含同名的实例变量,而实例变量类型不同,则反序列化失败,类定义应该更新serialVersionUID类变量的值。如果对象流中的对象比新类中包含更多的实例变量,则多出的实例变量值被忽略,序列化版本可以兼容,类定义可以不更新serialVersionUID的值。如果需要让某个对象支持序列化机制,则必须让它的类是可序列化的(继承serializable接口,该接口是一个标记接口,实现该接口无须实现任何方法,它只是表明该类的实例是可序列化的)//反序列化student对象。

2024-04-21 17:47:44 510

原创 Java基础知识总结(67)

int read(char[]cbuf,int off,int len):从输入流中最多读取len个字符的数据,并将其存储在字符数组cbuf中,放入数组cbuf中时,并不是从数组起点开始,而是从off位置开始,返回实际读取的字符数。int read(char[]cbuf):从输入流中最多读取cbuf.length个字符的数据,并将其存储在字符数组cbuf中,返回实际读取的字符数。int read():从输入流中读取单个字符,返回所读取的字符数据(字符数据可直接转换为int类型)。

2024-04-21 17:45:11 319

原创 Java基础知识总结(66)

null && files.length > 0) { //遍历路径和文件列对象 for (File file : files) { //判断是否是文件 if (file.isFile()) { //调用方法写入 filenames.add(file.getAbsolutePath());i++) { //将数据写入 os.write(files.get(i).getBytes());

2024-04-20 20:47:20 395

原创 Java基础知识总结(65)

输入和输出都涉及到方向的问题,这里的输入和输出都是从程序运行所在的内存角度划分的,也就是说从硬盘或者网络读取到程序运行内存中的流叫做输入流,反之从内存中写入硬盘的流则叫做输出流,换句话说,输入流和输出流都是以当前程序运行的内存作为参照物。Java中I/O流是实现输入/输出的基础,可以方便的实现输入和输出操作,Java中把不同的输入/输出源抽象表述为“流”,通过流的方式运行Java程序使用相同的方式来访问不同的输入/输出源,这里的流可以理解为字节序列,

2024-04-20 20:46:27 326

原创 Java基础知识总结(64)

今天主要学习了I/O流,重点为字节流的输入输出,练习了常用的方法。//如果是路径,需要继续递归调用方法并传递文件对象参数继续遍历输出文件和路径。System.out.println("共用时"+(end-start)/1000+"秒");//append:是指是否在原有内容后追加,默认为FALSE。//append参数为true:在原有内容后追加。//append参数为true:在原有内容后追加。//File对象的索引子文件和路径。//如果文件不存在,则自动创建。//如果文件不存在,则自动创建。

2024-04-19 23:44:24 427

原创 Java基础知识总结(63)

输入和输出都涉及到方向的问题,这里的输入和输出都是从程序运行所在的内存角度划分的,也就是说从硬盘或者网络读取到程序运行内存中的流叫做输入流,反之从内存中写入硬盘的流则叫做输出流,换句话说,输入流和输出流都是以当前程序运行的内存作为参照物。Java中I/O流是实现输入/输出的基础,可以方便的实现输入和输出操作,Java中把不同的输入/输出源抽象表述为“流”,通过流的方式运行Java程序使用相同的方式来访问不同的输入/输出源,这里的流可以理解为字节序列,输出流只能向其写入数据,而不能从中读取数据。

2024-04-19 23:43:12 297

原创 Java基础知识总结(62)

Exception:程序中出现的非正常情况,其中异常又分为两类,RuntimeException(运行时异常)和CheckedException(检查时异常),这两类异常都是Exception的子类,其中RuntimeException及其子类不需要开发者显示处理。Error:和虚拟机有关的问题,如系统崩溃、虚拟机错误等,这些错误无法恢复或者不可能被抓取,将导致应用程序中断,应用程序通常无法处理这些错误,因此不应该用异常处理方法来处理Error。//该方法抛出的是检查时异常,要求开发者显示处理。

2024-04-18 23:40:09 442

原创 Java基础知识总结(61)

允许程序在创建集合时指定集合元素的类型(允许程序在创建对象或者调用方法时动态的指定),所谓泛型,就是允许在定义类、接口、方法时使用类型形参,这个类型形参将在声明变量、创建对象、调用方法时动态地指定(即传入实际的类型参数,也可称为类型实参)。//编译错误 add()方法有参数类型E作为集合的元素类型,所以传给add的参数必须是E类对象或者其子类的对象,但是在上例中不知道E是什么类型,所以无法将任何对象添加进集合。* 允许在定义接口、类时声明类型形参、类型形参在整个接口、类中当成类型使用。

2024-04-18 23:38:39 538

原创 Java基础知识总结(60)

Map.Entry lastEntry()∶ 返回该 Map 中最大 key 所对应的 key-value 对,如果该 Map为空或不存在这样的 key-value 对,则都返回 null。//返回该 Map 中位于key 前一位的 key-value 对(即小于指定key 的最大 key 所对应的 key-value 对)。//返回该 Map 中位于key 后一位的 key-value 对(即大于指定key 的最小 key 所对应的 key-value 对)。如果该 Map 为空,则返回 null。

2024-04-17 23:29:47 614

原创 Java基础知识总结(59)

set.add("唐太宗");

2024-04-17 23:28:22 368

原创 Java基础知识总结(58)

/如果该位置处是树 else if (e instanceof TreeNode) ((TreeNode<K,V>)e).split(this, newTab, j, oldCap);//计算扩容阈值 newThr = (int)(DEFAULT_LOAD_FACTOR * DEFAULT_INITIAL_CAPACITY);//如果这个位置上只是一个Node,没有链表 if (e.next == null)

2024-04-17 05:49:38 362

原创 Java基础知识总结(57)

if ((p = tab[i = (n - 1) & hash]) == null)//判断tab[i]是否有元素 //如果没有元素则直接存放 tab[i] = newNode(hash, key, value, null);//如果key不相等,判断哈希表已有的节点是不是红黑树 else if (p instanceof TreeNode) //如果是红黑树则以树的方式插入元素 e = ((TreeNode<K,V>)p).putTreeVal(this, tab, hash, key, value);

2024-04-17 05:41:56 430

原创 Java基础知识总结(56)

System.out.println(map.containsValue("田福军"));System.out.println("键值对的数量:"+map.size());System.out.println("所有的value值"+s);System.out.println("键值对的数量:"+map.size());System.out.println("键值对的数量:"+map.size());//在这里进行了自动装箱 map.put(2,"孙玉厚");//清空map map.clear();

2024-04-15 23:21:23 469

原创 Java基础知识总结(55)

并不是取出最先进入队列的元素,而是取出队列中最小的元素,从这个意义上来看,PriorityQueue已经违反了队列先进先出的规则。队列的头部保存在队列中存放时间最长的元素,队列的尾部保存在队列中存放时间最短的元素。

2024-04-15 23:16:37 451

原创 Java基础知识总结(54)

else{ //实例化新节点 Node newNode = new Node(last,o,null);//实例化新节点 per指向索引节点的前置节点,next指向索引节点的后置节点。//将索引节点的前置节点指向索引节点的后置节点。

2024-04-14 23:05:49 427

原创 Java基础知识总结(53)

/删除成功 // // System.out.println("----------------------");

2024-04-14 23:05:05 483

原创 Java基础知识总结(52)

/ 对拼接结果使用intern,则会将对象放置在常量池中,如果已经存在,则返回已经存在的对象地址,Java1.6是将字面值放置在常量池中,Java1.7是将引用地址放置在常量池中。(8)Math工具类 Math提供了基本的加减乘除以为,还提供了一些复杂的数学运行,三角函数,对数运算等,Math类还提供了两个常量PI和E。nextXxx():获取下个输入项,输入项可以是基本类型数据,如果是字符串则直接使用next()如果再有变量引用该字符串时,直接返回常量池中字符串的引用,而不创建对象。

2024-04-13 22:55:05 425

原创 Java基础知识总结(52)

/ StringBuilder replace(int start , int end , String str)将当前字符串中start到end之间的内容全部用str的内容替换;//replace(String string) 返回一个新的字符串,它是通过用 `newChar` 替换此字符串中出现的所有 `oldChar` 得到的。// StringBuilder delete(int start ,int end)将当前字符串中从start(包含)开始到end(不包含)之间的内容移除;

2024-04-13 22:54:27 383

原创 Java基础知识总结(51)

(6)枚举类: 在特定情况下,一个类的对象是有限且固定的,这种实例有限且固定的类,Java中称为枚举类。枚举类和普通类的差异: 1、枚举类可以实现一个或多个接口,使用 enum 定义的枚举类默认继承了java.lang.Enum 类,而不是默认继承 Object 类,因此枚举类不能显式继承其他父类。} public void test() { //内部类中可访问外部类的私有成员 System.out.println("外部类的私有变量:"+age);但外部类不能访问内部类的实现细节,例如内部类的成员变量。

2024-04-12 19:59:52 496

原创 Java基础知识总结(50)

(3)关于环境变量配置的问题 配置环境变量path时,变量值应为JDK安装路径下的bin目录 存放JDK核心代码的是lib目录 (4)this关键字需要注意的点 在构造方法中可以通过this关键字来调用有参构造方法 (5)super关键字需要注意的点 super关键字用来访问父类内容时,在子类成员方法中,访问父类的成员变量,在子类的成员方法中,访问父类的成员方法,在子类的构造方法中,访问父类的构造方法。short(2字节):-2^15~2^15-1。byte(1字节):-2^7~2^7-1。

2024-04-12 19:57:31 620

原创 Java基础知识总结(49)

(2)成员变量 成员变量包括类变量(用static修饰的变量)和实例变量(不用static修饰的变量) 一个类在使用之前要经过类加载、类验证、类准备、类解析、类初始化等几个阶段 类变量: 类变量在类准备阶段起开始存在,直到系统完全销毁这个类。实例变量属于对象,通过对象.实例变量类当用,当然类变量也可以使用对象.类变量来访问。但是需要注意的是,通过对象.实例变量调用实例变量的过程中,该实例变量仍然属于类,而不属于当前的对象 如: package cn.bytecollege.variable;

2024-04-10 22:51:38 388

原创 Java基础知识总结(48)

当把一个子类对象直接赋值给父类引用变量时,当运行时调用该变量的方法时,其方法行为总是表现出子类方法的行为特征,而不是父类方法的行为特征,这就是相同类型的变量、调用同一个方法是呈现出多种不同的行为特征,这就是多态。传递性∶ 对任意x,y,z,如果x.equals(y)返回 ture,y.equals(z)返回 true,则x.equals(z)一定返回 true。Java中创建对象时,有两种类型,等号左边的编译时类型,等号右边叫做运行时类型,当编译时类型和运行时类型不一致时,就会产生多态。

2024-04-10 22:49:09 689

原创 Java基础知识总结(47)

studentArray[i] = new Student("周八",18,'男',"13830521813","陕西省西安市雁塔区", "[email protected]");

2024-04-09 23:10:08 362

原创 Java基础知识总结(46)

4、在同一个类中,实例方法可以调用类方法,因为类方法的初始化在实例方法的初始化之前,实例方法被调用时,内部类已经被加载了。//方法调用结束后 JVM中change方法栈帧被回收,打印对象的age变量,此时age变量的值已被改变。//实例化cat对象 JVM会在堆内存中为Cat类实例化的对象分配内存,并将对象的地址存储在栈内存中。2、不用static修饰的方法叫做实例方法,实例方法属于对象,调用方法时必须先创建对象,对象.方法名。2、this可以在方法中访问调用类中的其他实例方法,this可以省略。

2024-04-09 23:01:39 518

Java基础笔记-9-1

Java基础笔记-9-1

2023-12-10

Java基础笔记-8-31

Java基础笔记-8-31

2023-12-10

Java基础笔记-8-30

Java基础笔记-8-30

2023-12-10

Java基础笔记-8-26

Java基础笔记-8-26

2023-12-10

Java基础笔记-8-25

JUC原子类,ABA问题的产生和解决,以及锁的分类,JUC原子类这部分主要对其方法进行的相应的练习

2023-12-10

Java基础笔记-8-24

CAS算法的原理以及锁升级的详细过程

2023-12-10

Java基础笔记-8-23

线程池的相关内容,重点对线程池的拒绝策略进行了练习、同时对线程常见线程池和线程池的状态有了一定的了解。对并发编程有了一定的了解,包括对象结构、以及MarkWord结构信息、锁升级的相关内容

2023-12-10

Java基础笔记-8-22

Condition接口下的方法、生产者消费者模式、线程池。Condition接口的很多方法可以类比学习

2023-12-10

Java基础笔记-8-19

证明了Lock的可重入性,学习了volatile关键字和线程通信的相关内容。重点包括Lock和synchronized的区别,指令重排序,以及三个经典的单利模式,饿汉单例、懒汉单例、双重检查单例,线程间通信中主要包括等待和通知机制

2023-12-10

Java基础笔记-8-17

线程停止、JMM模型、synchronized关键字、synchronized实现原理和synchronized的内存语义

2023-12-10

Java基础笔记-8-16

线程休眠、线程让步、线程优先级的相关内容。其中线程休眠中重点学习了sleep()方法、LockSupport类下的park()和unpark()方法、以及sleep()方法和park()方法的区别,此外需要注意的是,Interrupt()方法能够使调用特定方法而处于阻塞状态的线程恢复运行,但通常不使用Interrupt()方法唤醒线程。 线程部分重点学习yield()方法,需要注意的是调用该方法让线程暂停后,系统的线程调度器会重新调度一次,优先级相同或者优先级高的线程可能会先执行

2023-12-10

Java基础笔记-8-15

线程存活判断以及线程控制的相关内容。重点学习了isAlive()方法、Join()的三个重载方法、setDaemon()方法,难点在于线程执行过程中对于线程状态的理解和判断

2023-12-10

Java基础笔记-8-12

主要包括对进程和线程的理解,并行和并发的区分,线程创建的方式、线程的生命周期

2023-12-10

Java基础笔记-8-11

Java基础笔记-8-11

2023-12-10

Java基础笔记-8-9

Java基础笔记-8-9

2023-12-10

Java基础笔记-8-8

主要内容为泛型的定义和上下限,异常处理的继承关系、概念和语法

2023-12-10

Java基础笔记-8-5

主要内容为HashSet的特点分析以及练习了一些基于特点的练习,LinkedHashSet、TreeMap和TreeSet的特点和常用方法的使用等,要继续在实践中总结基于概念的使用方法

2023-12-10

Java基础笔记-8-4

主要内容为对HashMap中resize、get、remove方法的源代码进行逻辑分析,通过Debug的方式分析了HashMap在添加元素时的扩容机制以及查询删除节点时的具体实现逻辑

2023-12-10

Java基础笔记-8-3

Java基础笔记-8-3

2023-12-10

Java基础笔记-8-2

Java基础笔记-8-2

2023-12-10

Java基础笔记-7-28

Java基础笔记-7-28

2023-12-10

Java基础笔记-7-27

Java基础笔记-7-27

2023-12-10

Java基础笔记-7-26

Java基础笔记-7-26

2023-12-10

Java基础笔记-7-25

Java基础笔记-7-25

2023-12-10

Java基础笔记-7-22

Java基础笔记-7-22

2023-12-10

Java基础笔记-7-21

Java基础笔记-7-21

2023-12-10

Java基础笔记-7-20

Java基础笔记-7-20

2023-12-10

Java基础笔记-7-19

Java基础笔记-7-19

2023-12-10

Java基础笔记-7-18

Java基础笔记-7-18

2023-12-10

Java基础笔记-7-16

Java基础笔记-7-16

2023-12-10

年会必备节目清单 《敬业阵线联盟》 网页版播放器

您还在为年会该表演什么节目而发愁吗?您还在为没有合适的歌词和配乐而苦恼吗? 不要沮丧,终极年会节目解决方案出炉了。 该静态网页主要实现“敬业阵线联盟”这首歌曲的播放功能,歌词来源于小红书视频,伴奏为经典的“失恋阵线联盟”。该网页可用于正式表演时的投屏或者展示,也可以在平时练习时使用。也可上传至Gitee仓库中并开启GiteePages 服务,方便使用者随时随地使用

2023-12-08

mysql经典面试习题21道(包含答案)

经典sql练习题,包含最常见的查询语句。在具体的例子中,帮助初学者学习sql语句的具体写法,并通过练习巩固数据库基础知识。

2023-12-08

Android课程设计-学生管理系统

Android课程设计 本设计采用传统安卓开发,Gradle构建项目,数据库使用模拟器自带的轻量级的关系数据库SQLite。

2023-10-19

最新JAVA编程题全集(60题*含答案)

汇总网络上已有的Java编程题目,难度适中,非常适合初学者练习巩固基础。

2023-10-19

基于Jetty+Servlet+Jsp+MySQL+MyBatis技术实现的简单博客系统

内容概要:本博客系统主要使用Jetty技术+Servlet技术+Jsp技术+BootStrap前端框架+wangEditor富文本编辑器+MySQL数据库+MyBatis持久层,通过对该系统的设计,可以在实践过程中掌握相关基础知识,如对三层架构开发模式的熟悉、熟悉和理解JavaWeb的基础原理和用法、数据库的连接、SQL语句实现多表联查以及分页查询、登录注册功能逻辑代码的编写等,BootStrap前端框架前端样式框架的使用,包括通过栅格系统实现页面的自适应、Flex布局的使用和练习、wangEditor富文本编辑器的使用方法等。 能学到什么:JavaWeb基础开发技术的基本理解和使用,MyBatis持久层的掌握和使用,BootStrap前端框架的基本使用方法和练习,使用SQL语句实现多表联查以及分页查询。 适合人群:Web开发初学者

2023-10-19

node-v14.17.1-win-x64

node-v14.17.1,有部分开源的前端Vue项目在运行时,需要安装指定Node.js环境。这个版本比较常用,网上教程也比较多,特上传到CSDN,有需要的兄弟可以下载。

2023-08-02

基于asp.net技术 学生留言板的设计与实现

内容概要:本留言板系统主要使用ASP.NET技术+BootStrap前端框架+Access数据库,通过对该系统的设计,简化代码实现过程,保留核心功能,可以在实践过程中掌握ASP.NET技术的部分使用方法,如各种控件的使用、数据库的连接、数据源的配置、登录注册功能逻辑代码的编写等,BootStrap前端框架前端样式框架的使用,包括通过栅格系统实现页面的自适应、Flex布局的使用和练习等。 能学到什么:ASP.NET技术的基本理解和使用,ADO.NET技术的掌握和使用,BootStrap前端框架的基本使用方法和练习。 适合人群:具备一定编程基础,web程序设计入门者,适合新手小白,适合于课程设计。

2022-05-20

基于ASP.NET的电商系统的设计与实现

内容概要:本电商系统主要使用ASP.NET技术+BootStrap前端框架+SQLServer数据库,通过对该系统的设计,简化代码实现过程,保留核心功能,可以在实践过程中掌握ASP.NET技术的部分使用方法,如对三层架构开发模式的熟悉、各种控件的使用、数据库的连接、登录注册功能逻辑代码的编写等,BootStrap前端框架前端样式框架的使用,包括通过栅格系统实现页面的自适应、Flex布局的使用和练习等。 能学到什么:ASP.NET技术的基本理解和使用,ADO.NET技术的掌握和使用,BootStrap前端框架的基本使用方法和练习。 适合人群:具备一定编程基础,Web程序设计入门者,适合新手小白,适合于课程设计。 主要功能:包括用户的注册、登录、商品的浏览、添加商品到购物车、形成订单、订单的付款等功能,管理员可以对用户、商品、订单、资讯等进行处理和操作。 PS:本系统支付仅为逻辑,没有实际功能。

2022-05-20

基于在线WebApi资源调用的Web前端应用《天气易搜》

内容概要:本应用主要使用vue框架+bootstrap前端框架+WebService,通过对京东万象中的天气WebApi资源的调用完成整个设计。在实践中掌握部分前端框架的用法,对前后端联调有初步的认识和理解,培养前端开发的兴趣有利于进一步学习前端开发技术。简化实现的过程,并保留核心的功能,例如,V-model双向绑定的运用、V-for列表渲染的运用、Bootstrap栅格系统实现页面自适应、Swiper轮播图与Vue框架的结合使用、后台json数据的提取和Echarts图表的创建等内容实现。 适合人群:适合前端开发初学者,适合于对数据可视化,适合新手小白,适合于课程设计 能学到什么:1.学会Vue框架+bootstrap前端框架+WebService+Swiper+Echarts图表的基础使用。2.对前后端联调有初步认识。 调试建议:运行调试平台尽量选用Visual Studio 2019,确保WebService运行,然后调试主页面。

2022-04-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除