java之基础
文章平均质量分 87
遇见狂神说之java笔记
去薯条搞点码头
高速运转的机器进入中国小的时候
展开
-
【狂神】多线程(含内部类、Lambda)
多个线程操作同一个资源并发:同一个对象被多个线程同时操作处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象这时候我们就需要线程同步。线程同步其实就是一种等待机制,多个需要同时访问此对象的线程进入这个对象的等待池形成队列,等待前面线程使用完毕,下一个线程再使用实现同步需要队列和锁线程同步在这里举三个例子来展示线程的三大不安全案例一:三个人抢10张票案例二:两个人取钱案例三:创建10000条线程。原创 2024-08-01 00:33:36 · 839 阅读 · 0 评论 -
【黑马java基础】单元测试、反射、注解
先来认识一下什么是注解?Java注解是代码中的特殊标记,比如@Override、@Test等,作用是:让其他程序根据注解信息决定怎么执行该程序。比如:Junit框架的@Test注解可以用在方法上,用来标记这个方法是测试方法,被@Test标记的方法能够被Junit框架执行。再比如:@Override注解可以用在方法上,用来标记这个方法是重写方法,被@Override注解标记的方法能够被IDEA识别进行语法检查。注解不光可以用在方法上,还可以用在类上、变量上、构造器上等位置。原创 2024-08-01 00:20:24 · 627 阅读 · 0 评论 -
【黑马java基础】网络通信
可以让设备中的程序与网络上其他设备中的程序进行数据交互(实现网络通信的)。java提供了java.net.*包下提供了网络编程的解决方案通信的基本架构主要有两种形式:一种是CS架构(Client 客户端/Server服务端)、一种是BS架构(Brower 浏览器/Server服务端)。**BS架构的特点:**BS架构不需要开发客户端软件,用户只需要通过浏览器输入网址就可以直接从服务器获取数据,并由服务器将数据返回给浏览器,用户在页面上就可以看到各种数据了。原创 2024-08-01 00:07:40 · 803 阅读 · 0 评论 -
【黑马java基础】多线程
线程安全问题指的是,多个线程同时操作同一个共享资源的时候,可能会出现业务安全问题。比如:取钱的线程安全问题(场景:小明和小红是一对夫妻,他们有一个共同的账户,余额是10万元,如果小明和小红同时来取钱,并且2人各自都在取钱10万元,可能会出现什么问题呢?①小明线程步骤一先判断余额是否够,够②小红线程步骤一先判断余额是否够,够③因为小明线程判断够,所以银行吐出10万④银行账户更新为0元⑤因为小红线程判断够,所以银行吐出10万⑥银行账户更新为-10万元结果:2人都取钱10万,银行亏了10万。原创 2024-07-25 08:57:59 · 612 阅读 · 0 评论 -
【黑马java基础】特殊文件,日志
XML( 全称EXtensible Markup Language, 可扩展标记语言 )可扩展的意思就是里面的标签可以自己定义。本质是一种数据的格式,可以用来存储复杂的数据结构,和数据关系。XML的特点XML中的“<标签名>” 称为一个标签或一个元素,一般是成对出现的。XML中的标签名可以自己定义(可扩展),但必须要正确的嵌套。XML中只能有一个根标签。XML中的标签可以有属性。如果一个文件中放置的是XML格式的数据,这个文件就是XML文件,后缀一般要写成.xml。XML的创建。原创 2024-07-23 22:58:04 · 1040 阅读 · 0 评论 -
【黑马java基础】IO流
ASCII(American Standard Code for Information Interchange): 美国信息交换标准代码,包括了英文、符号等。标准ASCII使用1个字节存储一个字符,首尾是0,总共可表示128个字符,对美国佬来说完全够用。汉字编码字符集,包含了2万多个汉字等字符,GBK中一个中文字符编码成两个字节的形式存储。汉字的第一个字节的第一位必须是1。注意:GBK兼容了ASCII字符集。Unicode是国际组织制定的,可以容纳世界上所有文字、符号的字符集。原创 2024-07-22 16:53:36 · 312 阅读 · 0 评论 -
【黑马java基础】Lamda, 方法引用,集合{Collection(List, Set), Map},Stream流
集合的并发修改异常:就是使用迭代器遍历集合时,又同时在删除集合中的数据,程序就会出现并发修改异常的错误。list.add("王麻子");list.add("小李子");list.add("李爱花");list.add("张全蛋");list.add("晓李");list.add("李玉刚");// [王麻子, 小李子, 李爱花, 张全蛋, 晓李, 李玉刚]//需求:找出集合中带"李"字的姓名,并从集合中删除if(name.contains("李")){原创 2024-07-19 16:32:51 · 1123 阅读 · 0 评论 -
狂神——JVM
从两个维度:内存效率、内存整齐度、内存利用率进行比较内存效率(内存碎片多不多):复制算法>标记清除算法>标记压缩算法(时间复杂度)内存整齐度:复制算法 = 标记压缩算法 > 标记清除算法内存利用率:标记压缩算法 = 标记清除算法 > 复制算法没有最好的算法,只有最合适的算法,所以GC也被称为分代收集算法存活率较低,所以在这个区域更适合用复制算法!老年代区域大,存活率较高。所以更适合用标记清除(如果内存碎片不是太多就可以使用)+ 标记压缩混合(内存碎片达到一定量级的时候就压缩)实现。原创 2024-07-12 21:53:08 · 752 阅读 · 0 评论 -
【黑马Java基础】正则表达式+异常
Java无法为这个世界上全部的问题都提供异常类来代表,如果企业自己的某种问题,想通过异常来表示,以便用异常来管理该问题,那就需要自己来定义异常类了。自定义异常种类:自定义运行时异常//保存一个合法的年龄try {System.out.println("底层执行成功!");System.out.println("底层出现了bug");System.out.println("年龄被成功保存:" +age);}else {//用一个异常对象封装这个问题。原创 2024-07-09 15:24:39 · 595 阅读 · 0 评论 -
【黑马Java基础】3、内部类、枚举、泛型
内部类是五大成分之一(成员变量、方法、构造器、内部类、代码块),如果一个类定义在另一个类的内部,这个类就是内部类。定义类、接口、方法时,同时声明了一个或者多个类型变量(如:),称为泛型类、泛型接口,泛型方法、它们统称为泛型。应用场景:当一个类的内部,包含了一个完整的事物,且这个事物没有必要单独设计时,就可以把这个事物设计成内部类。内部类有四种形式:成员内部类、静态内部类、局部内部类、匿名内部类。就是类中的一个普通成员,类似前面学到的普通的成员变量、成员方法。匿名类是一个子类,同时也是一个子类对象。原创 2024-05-18 16:30:23 · 272 阅读 · 0 评论 -
【黑马Java基础】2、3个OOP,API
就是用类设计对象处理某一个事物的数据时,应该把处理的数据,以及处理这些数据的方法,设计到一个对象中去。当子类觉得父类中的某个方法不好用,或者无法满足自己的需求时,子类可以重写一个方法名称、参数列表一样的方法,去覆盖父类的这个方法,这就是方法重写。重写后,方法的访问,Java会遵循就近原则b.print1();//方法重写//响应结果:666666666666多态是在继承/实现的情况下的一种现象,表现为:对象多态、行为多态(变量不多态,运行谁就是谁)多态的前提:有继承、实现。原创 2024-05-18 16:08:41 · 901 阅读 · 0 评论 -
【黑马Java基础】1、数组,方法
定义数组时直接给数组赋值//正常版本//简化版本什么类型的数组只能存放什么类型的数据。计算机中的程序都是在内存中执行的,计算机遇到代码之后会在内存中开辟一块空间,但暂时不装东西,会等到等号右边的东西进来。右边的代码也会新开辟一块区域,分三块存储(12,24,36)。然后右边会把数组地址交给左边的数组变量,用数据变量指向数组,然后进行访问。对象可以理解为就是个东西//响应结果//[代表是数组的地址,I代表是Int类型数组,@在哪个地址,在afb5f4df这个地址注意。原创 2024-01-20 22:07:11 · 583 阅读 · 0 评论 -
【狂神说Java】2021-03-26学习笔记:异常
1.什么是异常2.异常体系结构3.java异常处理机制4.处理异常5.自定义异常6.总结什么是异常实际生活中,遇到的情况不可能是完美的。比如:你写的模块用户输入不一定符合你的要求;你的程序要打开某个文件,这个文件可能不存在或者文件格式不对;你要读取数据库的数据,数据可能是空的;我们的程序在跑着,内存或硬盘可能满了。等等……软件程序在运行过程中,非常可能遇到刚刚提到的这些异常问题,我们叫异常,英文是Exception,意思是例外。异常是指程序运行中出现的不期而至的各种状况,如:文件找原创 2021-03-26 15:42:55 · 132 阅读 · 0 评论 -
【狂神说Java】2021-03-18学习笔记:面向对象
面向对象编程(OOP)1.初识面向对象2.方法回顾和加深3.对象的创建分析4.面向对象的三大特性5.抽象类和接口6.内部类及OOP实战初识面向对象面向过程&面向对象面向过程思想(线性思维):步骤清晰简单,第一步做什么,第二步做什么……面对过程适合处理一些较为简单的问题面向对象思想(分类思维):物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。面向对象适合处理复杂的问题,适合处理需要多人协原创 2021-03-16 16:12:25 · 313 阅读 · 0 评论 -
【狂神说Java】2021-03-10学习笔记:数组
数组1.数组概述2.数组声明创建3.数组使用4.多维数组5.Arrays类6.稀疏数组数组概述数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排序组合而成。其中,每一个数据称作一个数组元素,每一个数组元素可以通过一个下标来访问它们。数组声明创建首先必须声明数组变量,才能在程序中使用数组。声明数组变量的语法:dataType[] arrayRefVar; //首选的方法或dataType arrayRefVar[]; //效果相同,但原创 2021-03-11 14:15:41 · 148 阅读 · 0 评论 -
【狂神说Java】2021-03-10学习笔记:java方法
java方法详解1.何谓方法2.方法的定义与调用3.方法重载4.命令行传参5.可变参数6.递归方法java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保证方法的原子性,就是一个方法只完成一个功能,这样利于我们后期的拓展。package com.method;public class Demo01原创 2021-03-10 10:10:03 · 145 阅读 · 0 评论 -
【狂神说Java】2021-03-05学习笔记:java流程控制
Java流程控制1.用户交互Scanner2.顺序结构3.选择结构4.循环结构5.break&continue6.练习用户交互Scanner实现程序和人的交互,我们可以通过Scanner类来获取用户的输入基本语法:Scanner s = new Scanner(System.in);通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据/*next():1.一原创 2021-03-05 16:06:17 · 160 阅读 · 0 评论 -
【狂神说Java】2021-03-02学习笔记:java基础
语法注释、标识符、关键字数据类型类型转换变量常量运算符包机制、JavaDoc注释书写注释是一个好习惯。//单行注释/* 多行注释 *//**文档注释:*/拓展:有趣的代码注释标识符类名、变量名以及方法名都被称为标识符public class Hello { //Hello就是类名 public static void main(String[] args) { //main就是方法名 String teacher = "大爷";原创 2021-03-02 16:05:46 · 295 阅读 · 0 评论 -
【狂神说Java】2021-02-21学习笔记:java预科+环境搭建
java特性和优势JDK JRE JVM搭建开发环境IDEA安装java种类、特性和优势java2标准版(j2se):标准版-去占领桌面(桌面程序,控制台开发)java2移动版(j2me):嵌入式开发-去占领手机(手机,小家电)die……java2企业版(j2ee):E企业级开发-去占领服务器(web端,服务器开发)三高:高可用、高性能、高并发JDK JRE JVMJDK:Java Development Kit java开发者工具JRE:Java Runtime Enviro原创 2021-03-02 10:27:40 · 243 阅读 · 1 评论 -
【狂神说Java】2021-02-20学习笔记:计算机组成+快捷键+DOS命令
预科:计算机组成计算机硬件组成:CPU、主板、内存、电源主机箱、硬盘、显卡、键盘鼠标、显示器等……CPU、内存、主板最重要冯诺依曼体系结构从输入设备输入1+1,CPU用运算器算好的结果返回到存储器中,用控制器显示输出到输出设备计算机软件分为系统软件和应用软件快捷键shift+delete永久删除win+r打开命令行win+e打开文件夹在命令行里输入explorer恢复桌面ctrl+shift+esc打开任务管理器Dos命令打开CMD:开始->系统->命令提示原创 2021-02-20 10:19:05 · 155 阅读 · 0 评论 -
【狂神说Java】2021-02-19学习笔记:Markdown学习
javase是什么Java se是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称(javase是总称)JDBC是java如何去操作MySql预科:一些常用的DOS命令:清屏:cls切换盘符: :进入指定目录: cd返回上一级目录:cd..返回盘符根目录: cd\显示当前目录下的文件和子目录信息:dir...原创 2021-02-20 07:59:14 · 205 阅读 · 1 评论