Java
文章平均质量分 64
无名之辈008
学习是我的信仰
展开
-
JUC学习总结(待补充)
1.什么是JUC?java.util工具包、包、分类2.线程和进程进程:程序的集合。 一个进程往往可以包含多个进程,至少包含一个。java默认由两个进程,分别为main和GC。线程:继承Thread类,实现Runnable接口,Callable创建线程。并发和并行? 并发(多线程操作同一个资源)CPU一核,模拟出来多条线程。 并行(多个人一起走)CPU多核,多个线程可以同时进行;线程池获取CPU核数:System.out.println(Runtime.getRu原创 2021-11-08 20:02:58 · 539 阅读 · 0 评论 -
JavaSE最终篇:注解和反射
注解和反射1.什么是注解?2.内置注解3.元注解4.自定义注解5.Java Reflection5.1 反射的优点和缺点5.2 反射相关的API6.Class类1.什么是注解?Annotation是从JDK5.0开始引入的技术Annotation的作用:- 不是程序本身,可以对程序做出解释。(这一点跟注释一样)- 可以被其他程序(比如:编译器等)读取Annotation的格式:- 注解是以“@注释名”在代码中存在的,还可以添加一些参数值,例如:@SuppressWarnings(v原创 2021-10-25 20:04:16 · 426 阅读 · 0 评论 -
多线程(六):线程协作
线程协作1.线程通信2.线程通信--分析1.线程通信应用场景:生产者和消费者问题假如仓库中只能存放一件商品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费。如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,直到仓库中的产品被消费者取走为止。如果仓库中放有产品,则消费者可以将产品取走消费,否则停止消费并等待,直到仓库中再次放入产品为止。2.线程通信–分析 这是一个线程同步问题,生产者和消费者共享同一个资源,并且生产者和消费者之间相互依赖,互为条件。对于生原创 2021-10-20 20:06:02 · 255 阅读 · 0 评论 -
CSDN中写博客时,插入图片显示有水印,如何去除水印?
今天在CSDN写博客时,想插入一张图片,但是发现图片上带有水印,看着很不是滋味,不怎么美观,于是就想着把水印去除,其实很简单的。 首先上原图,大概是这个样子的 其实只要把图片下面那个描述中image和watermark之间的/去除即可,如下图所示。下面是去除之后的图,已经没有水印了...原创 2021-10-19 20:45:16 · 1468 阅读 · 0 评论 -
多线程(五):线程同步
线程同步机制并发:同一个对象被多个线程同时操作。现实生活中,我们会遇到“同一个资源,多个人都想使用"的问题,比如,食堂排队打饭,每个人都想吃饭,最天然的解决方法就是排队,一个一个来。处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象,这时就需要线程同步,线程同步其实就是一种等待机制,多个需要同时访问此对象的线程进入这个对象的等待池形成队列,等待前面线程使用完毕,下一个线程再使用。 由于同一进程的多个线程共享同一块存储空间,在带来方便的同时,也带来了访问冲突问题,为了保证原创 2021-10-19 19:44:34 · 143 阅读 · 0 评论 -
多线程(四):线程优先级及守护线程
1.线程的优先级Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有进程,线程调度器按照优先级决定应该调度哪个线程来决定。线程的优先级用数字来表示,范围从1-10- Thread.MIN_PRIORITY = 1;- Thread.MAX_PRIORITY = 10; - Thread.NORM_PRIORITY = 5;使用以下方式改变或获取优先级- getPriority(),setPriority(int xxx)注意:优先级的设定建议在start()调度前。优先原创 2021-10-18 13:03:06 · 121 阅读 · 0 评论 -
多线程(三):线程状态(五大状态)
线程状态多线程的五种状态:状态详解:线程方法:停止线程:不推荐使用jdk提供的stop()、destroy()方法.推荐线程自己停下来建议使用一个标志位进行终止变量,当flag=false时,则终止线程运行代码如下:package www.baidu.state;/* 测试stop: 1.建议线程正常停止--->利用次数,不建议死循环 2.建议使用标志位--->设置一个标志位 3.不要使用stop或者destroy等过时或者jdk不建议使用原创 2021-10-17 17:03:32 · 389 阅读 · 0 评论 -
多线程(二):静态代理模式和Lambda表达式
多线程(二):静态代理模式和Lambda表达式1.静态代理模式2.Lambda表达式1.静态代理模式真实对象和代理对象都要实现同一个接口class You implements Marryclass WeddingCompany implements Marry You和WeddingCompany分别为真实对象和代理对象,实现对象是Marry,意思就是说You通过WeddingCompany来实现Marry。代理对象要代理真实对象 就是说代理对象来完成真实对象所要完成原创 2021-10-16 19:52:12 · 169 阅读 · 0 评论 -
多线程(一):线程、进程、多线程以及线程的创建方式(主要Thread类和Runnable)
多线程1.线程、进程、多线程线程的创建1.线程、进程、多线程Process与Thread:说起进程,就不得不说程序。程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程则是执行程序的一次执行过程,它是一个动态的概念。是系统资源分配的单位。通常在一个进程中可以包含若干个线程,当然一个进程中至少有一个线程,不然没有存在的意义。线程是CPU调度和执行的单位。线程核心概念:线程就是独立的执行路径在程序运行时,即使没有自己创建线程,后台也会有多个线程,如主线程,gc线程原创 2021-10-14 21:57:03 · 181 阅读 · 0 评论 -
Java之面向对象:详解
面向对象1.初识面向对象面向对象 & 面向过程什么是面向对象?2.方法回顾与加深回顾方法及加深3.对象的创建分析类与对象的关系4.面向对象三大特性5.抽象类与接口6.内部类及oop实战1.初识面向对象面向对象 & 面向过程面向过程思想步骤清晰简单,第一步做什么,第二步做什么…面对过程适合处理一些较为简单的问题。面向对象思想物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考,最后才对某个分类下的细节进行面向对象的思索。面向对象适合原创 2021-10-10 15:28:31 · 458 阅读 · 0 评论 -
用Java写简单的冒泡排序
简单的冒泡排序package com.baidu.Array;//简单的冒泡排序public class Demo05 { public static void main(String[] args) { int[] a ={5,4,3,2,1}; sort(a); for (int i = 0; i < a.length; i++) { System.out.println(a[i]); }原创 2021-10-09 12:51:16 · 2676 阅读 · 0 评论 -
Java数组
1.数组概述数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个数组元素,每个数组元素可以通过下标来访问他们。2.数组声明创建首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:dataType [ ] arrrayRefVar; //首选的方法dataType arrayRefVar[ ];//效果相同,但不是首选方法Java语言使用new操作符来创建数组,语法如下:dataType原创 2021-01-24 21:46:33 · 102 阅读 · 1 评论 -
Java方法:递归调用
递归就是:A方法调用A方法!就是自己调用自己利用递归可以用简单地程序来解决一些复杂的问题。他通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大的减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。递归结构;包括两个部分:递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。递归体:什么时候需要调用自身方法。举例说明:求5的阶乘。package com.baidu.method;.原创 2021-01-24 21:09:45 · 296 阅读 · 0 评论 -
Java方法
1.何为方法?Java方法是语句的集合,他们在一起执行一个功能。1.方法是解决一类问题的步骤的有序组合2.方法包含于类或对象中3.方法在程序中被创建,在其他地方被引用设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,有利于后期的发展。2.方法的定义Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法:修饰符 返回值类型 方法名(参数类型原创 2021-01-23 21:43:09 · 142 阅读 · 0 评论 -
java打印三角形
package com.baidu.struct;public class TestDemo { public static void main(String[] args) { //打印三角形 5行 for(int i = 1;i <= 5;i++){ for (int j = 5;j >= i;j--){ System.out.print(" "); }原创 2021-01-23 19:42:21 · 119 阅读 · 0 评论 -
Java流程控制:break、continue的区别
1.breakbreak在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)举例说明:package com.baidu.struct;public class BreakDemo01 { public static void main(String[] args) { int i = 0; while(i<100){ i++;原创 2021-01-23 19:23:08 · 126 阅读 · 0 评论 -
Java流程控制:顺序,选择,循环结构
1.顺序结构Java的基本结构就是顺序结构,除非特殊声明,否则就按照顺序一步一步执行。顺序结构是最简单的算法结构。语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。2.选择结构if单选择结构我们很多时候需要判断一个东西是否可行,然后我们再去执行,这样一个过程中用if语句来表示。语法:if(布尔表达式){//如果布尔表达式为true将执行的语句}if双选择结构语法:if(布尔表达式)原创 2021-01-22 22:48:54 · 187 阅读 · 0 评论 -
Java流程控制:用户交互Scanner
Scanner对象Java给我们提供了这样一个工具类,可以获取用户的输入。java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入。基本语法:Scanner s = new Scanner(System.in);通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。next():一定要读取到有效字符后才可以结束输入。对输入原创 2021-01-21 21:05:37 · 181 阅读 · 0 评论