
Java基础
文章平均质量分 84
Jatine
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
多线程学习笔记05线程协作
文章目录多线程学习笔记05线程协作线程通信解决方式1管程法解决方式2信号灯法多线程学习笔记05线程协作线程通信应用场景:生产者和消费者问题假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费;如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,直到仓库中的产品被消费者取走为止;如果仓库中放有产品,则消费者可以将产品取走消费,否则停止消费并等待,直到仓库中再次放入产品为止。我们来分析一下:首先,这是一个线程同步问题,生产者和消费者共享同一个资原创 2022-02-01 16:04:27 · 2678 阅读 · 0 评论 -
多线程学习笔记04线程同步
文章目录多线程学习笔记03线程同步并发线程同步三大不安全案例同步方法多线程学习笔记03线程同步并发同一个对象被多个线程同时操作,比如上万人同时抢100张票处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象,这时候我们就需要线程同步,线程同步其实就是一种等待机制,多个需要同时访问此对象的线程进入这个对象的等待池形成队列,等待前面线程使用完毕,下一个线程再使用。并发实际上就是同一个对象被多个线程同时操作,这里强调三个点:1、同一个对象(如果每个人操作自己的银行卡显然不会发生并发原创 2022-01-31 23:38:59 · 1119 阅读 · 0 评论 -
多线程学习笔记03线程状态
文章目录多线程学习笔记03线程状态简介线程方法线程停止线程休眠线程礼让线程强制执行(join)线程状态观测线程优先级多线程学习笔记03线程状态简介创建状态:Thread t = new Thread()线程对象一旦创建就进入到了新生状态;就绪状态:当调用start()方法,线程立即进入就绪状态,但不意味着立即调度执行;运行状态:进入运行状态,线程才真正执行线程体的代码块;阻塞状态:当调用sleep, wait或同步锁定时,线程进入阻塞状态,就是代码不往下执行,阻塞事件解除后,重新进入就绪状态原创 2022-01-30 22:49:10 · 1144 阅读 · 0 评论 -
多线程学习笔记02Lamda表达式与静态代理
文章目录多线程学习笔记02Lamda表达式与静态代理Lamda表达式静态代理多线程学习笔记02Lamda表达式与静态代理Lamda表达式避免匿名内部类定义过多其实质属于函式编程的概念(params)->expression[表达式](params)->statement[语句](params)->{statements}a->System.out.println(“i like lambda–>”+a);new Thread(()->System.原创 2022-01-30 15:51:34 · 790 阅读 · 0 评论 -
Java基础09面向对象之内部类(学习笔记 专题补充 深化理解)(非原创)
声明:文章来源:《Java内部类详解》作者:Matrix海子《JAVA匿名内部类(Anonymous Classes)》作者:无恨之都文章目录Java基础09面向对象之内部类(学习笔记 专题补充 深化理解)(非原创)1成员内部类2局部内部类3匿名内部类3.1定义匿名内部类3.2匿名内部类的语法3.3访问作用域内的局部变量、定义和访问匿名内部类成员3.4匿名内部类实例4静态内部类5内部类的使用场景和好处6常见的与内部类相关的笔试面试题Java基础09面向对象之内部类(学习笔记 专题补充 深化理解.原创 2022-01-30 09:57:19 · 1255 阅读 · 0 评论 -
多线程学习笔记01线程、进程、多线程与线程创建
文章目录多线程学习笔记01线程、进程、多线程与线程创建1线程、进程、多线程普通方法调用和多线程Process与Thread2线程创建三种创建方式Thread类网图下载实现Runnable初识并发问题案例:龟兔赛跑实现Callable接口(了解即可)多线程学习笔记01线程、进程、多线程与线程创建1线程、进程、多线程普通方法调用和多线程只有主线程一条执行路径,效率低:多条执行路径、主线程和子线程并行交替执行,效率高:Process与Thread说起进程,就不得不说下程序。程序是指令和数据的有原创 2022-01-29 21:42:37 · 270 阅读 · 0 评论 -
GUI编程基础03贪吃蛇
文章目录GUI编程基础03贪吃蛇GUI编程基础03贪吃蛇原创 2022-01-29 15:06:50 · 143 阅读 · 0 评论 -
GUI编程基础02Swing(了解)
文章目录GUI编程基础02事件监听GUI编程基础02事件监听事件监听:当某个事件发生时,该干什么?import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class TestAction { public st原创 2022-01-28 21:01:47 · 910 阅读 · 0 评论 -
GUI编程基础01AWT(了解)
文章目录GUI编程基础01简介AWT(抽象窗口工具包)组件和容器第一个Frame窗口Panel面板讲解三种布局管理器流式布局东西南北中表格布局练习GUI编程基础01简介GUI(图形用户界面)核心技术:Swing AWTGUI目前已不再流行,因为:界面不美观需要jre环境(jre环境太大)AWT(抽象窗口工具包)包含了很多的类和接口包含很多元素:窗口、按钮、文本框等java.awt包提供了基本的java程序的GUI设计工具。主要包括下述三个概念:组件–Component容原创 2022-01-26 16:10:02 · 1576 阅读 · 0 评论 -
Java基础08异常机制
文章目录Java基础08异常机制什么是异常异常的简单分类异常体系结构ERRORException异常处理机制try...catch主动抛出异常(throw和throws)throwsthrow异常的注意事项及如何使用异常处理异常注意事项(针对编译期异常)如何使用异常处理Java基础08异常机制什么是异常实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据可能是空的等。我们的程序原创 2022-01-25 22:45:47 · 423 阅读 · 0 评论 -
Java基础07面向对象
文章目录Java基础07面向对象面向过程&面向对象什么是面向对象类与对象的关系创建与初始化对象Java基础07面向对象面向过程&面向对象1、面向过程思想步骤清晰简单,第一步做什么,第二步做什么….面对过程适合处理一些较为简单的问题2、面向对象思想物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。面向对象适合处理复杂的问题,适合处理需要多人协作的问题对于描述复杂的事物,为了从宏观上原创 2022-01-25 21:13:28 · 634 阅读 · 0 评论 -
Java基础06数组
文章目录Java基础06数组数组的定义数组声明创建内存分析入门了解堆栈方法区三种初始化静态初始化动态初始化数组的四个基本特点数组边界数组的使用for-each循环数组作方法入参数组作返回值多维数组Arrays类冒泡排序稀疏数组稀疏数组介绍Java基础06数组数组的定义数组是相同类型数据的有序集合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们数组声明创建首先必须声明数组变量,才能在程序中使用数组,其语原创 2022-01-24 12:26:40 · 503 阅读 · 0 评论 -
Java基础05方法
文章目录Java基础05方法方法的定义方法的调用方法的重载命令行传参(了解)可变参数(不定项参数)递归Java基础05方法Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展。方法的定义Java的方法类似于其它语言的函数,是一段用来完成特定功能原创 2022-01-23 15:56:52 · 113 阅读 · 0 评论 -
Java基础04Java流程控制
文章目录Java基础04Java流程控制用户交互Scanner顺序结构选择结构if单选择结构if双选择结构if多选择结构嵌套的if结构switch多选择结构循环结构Java基础04Java流程控制用户交互Scanner基本语法:Scanner s = new Scanner(System.in)通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext() 与hasNextLine()判断是否还有输入的数据。Scanner对象有两个方法:n原创 2022-01-23 10:43:41 · 395 阅读 · 0 评论 -
Java基础03运算符
文章目录Java基础03运算符算数运算符赋值运算符关系运算符幂运算(Math的用法)Number & Math 类方法逻辑运算符短路运算位运算左移,右移条件运算符扩展运算符Java基础03运算符算数运算符+,-,*,/,%,++,- -其中:%:取余(模运算)int b = a++;(执行完这行代码后,先给b赋值,a再自增)int c = ++a;(执行这行代码前,a先自增,再赋值给c)赋值运算符=:"a=10"读作“把10赋值给变量a”关系运算符关系运算符有 >,<原创 2022-01-22 20:30:16 · 792 阅读 · 0 评论 -
Java基础02类型转换
文章目录Java基础02类型转换强制类型转换(由高到低)自动类型转换(由低到高)Java基础02类型转换由于Java是强类型语言,所以在进行有些运算的时候,需要用到类型转换。运算中,不同类型的数据先转化为同一类型,然后进行运算。强制类型转换(由高到低)强制转换:(类型)变量名要注意内存溢出的问题,例如: int i = 128; byte b = (byte)i;//Byte最大值127 内存溢出 System.out.p原创 2022-01-18 23:17:28 · 264 阅读 · 0 评论 -
Java基础01数据类型及变量、作用域
文章目录Java基础01数据类型强类型语言弱类型语言变量Java中的数据类型分为两大类基本类型引用类型Java基础01数据类型强类型语言要求变量的使用严格符合规定,所有变量都必须先定义才能使用弱类型语言弱类型语言也称为弱类型定义语言,与强类型定义相反。变量变量就是可以变化的量Java是一种强类型语言,每个变量都必须声明其类型Java变量是程序中最基本的存储单元,其要素包括变量名、变量类型和作用域type varName [=value] [{,varnName[=value]}]原创 2022-01-18 22:56:08 · 274 阅读 · 0 评论