Java学习
文章平均质量分 92
Java学习笔记
刚学编程的小白( •̥́ ˍ •̀ू )
即使再小的帆也能远航!
展开
-
JVM学习05:内存模型
抛开以下。原创 2023-05-11 19:27:29 · 554 阅读 · 0 评论 -
JVM学习04:类加载与字节码技术
什么时候需要自定义类加载器?想加载非 classpath 随意路径中的类文件。都是通过接口来使用实现,希望解耦时,常用在框架设计。这些类希望予以隔离,不同应用的同名类都可以加载,不冲突,常见于 tomcat 容器。步骤:继承 ClassLoader 父类。要遵从双亲委派机制,重写 fndClass 方法。注意不是重写 loadClass 方法,否则不会走双亲委派机制。读取类文件的字节码。调用父类的 defineClass 方法来加载类。使用者调用该类加载器的 loadClass 方法。原创 2023-05-11 19:23:33 · 1082 阅读 · 0 评论 -
JVM学习03:垃圾回收
例如图中的ByteBuffer对象,当ByteBuffer对象实力创建时,会创建一个虚引用对象Cleaner来引用它,这时会分配一块直接内存,并且会把直接内存地址传递给Cleaner对象,当ByteBuffer对象被清理时,虚引用对象Cleaner会放入引用队列,当 ReferenceHandler 线程监测到有对象进入队列时,会调用相关方法释放直接内存。当from内存满了的时候,首先标记存活的对象,然后把存活的对象从from区复制到to区,然后将from区清空,最后交换from区和to区。原创 2023-02-12 12:01:21 · 496 阅读 · 0 评论 -
JVM学习02:内存结构
Java Virtual Machine Stacks (Java 虚拟机栈)每个线程运行时所需要的内存,称为虚拟机栈。每个栈由多个栈帧(Frame)组成,对应着每次方法调用时所占用的内存。每个线程只能有一个活动栈帧,对应着当前正在执行的那个方法。栈可以看做一个弹夹,先进后出。/*** 演示栈帧method1();return c;} }查看结果:我们debug发现每调用一个新的方法时,该方法就会在顶部压入栈,当这个方法运行完,就会在栈中弹出。最上面的那个方法就是活动栈帧。原创 2023-02-12 11:55:28 · 520 阅读 · 0 评论 -
JVM学习01:简介
定义:Java Virtual Machine —— java 程序的运行环境(java 二进制字节码的运行环境)好处:比较:jvm jre jdk我们主要学习 HotSpot 版本的 JVM。原创 2023-02-12 11:47:56 · 89 阅读 · 0 评论 -
狂神。JVM入门学习笔记。
Sun公司HotSpot(java -version可以查看)BEA的JRockitIBM的J9VM类加载器作用:加载Class文件。启动类(根)加载器( Bootstrap ClassLoader):负责加载jre\lib目录下的rt.jar包。扩展类加载器(Extension ClassLoader):负责加载目录下的所有jar包。应用程序加载器(Application ClassLoader):负责加载用户类路径上所指定的类库,如果应用程序中没有自定义加载器,那么此加载器就为默认加载器。原创 2023-01-22 20:28:24 · 2295 阅读 · 0 评论 -
狂神。Git学习笔记。
版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。实现跨区域多人协同开发。追踪和记载一个或者多个文件的历史记录。组织和保护你的源代码和文档。统计工作量。并行开发、提高开发效率。跟踪记录整个软件的开发过程。减轻开发人员的负担,节省时间,同时降低人为错误。简单说就是用于管理多人协同开发项目的技术。原创 2022-10-08 20:19:50 · 331 阅读 · 0 评论 -
狂神。SpringBoot学习(3)
RPC【Remote Procedure Call】是指远程过程调用,是一种进程间通信方式,他是一种技术的思想,而不是规范。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的函数,本质上编写的调用代码基本相同。也就是说两台服务器 A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。为什么要用RPC呢?原创 2022-08-25 10:08:53 · 529 阅读 · 1 评论 -
狂神。SpringBoot学习(2)
对于数据访问层,无论是 SQL(关系型数据库) 还是 NOSQL(非关系型数据库),SpringBoot 底层都是采用 Spring Data 的方式进行统一处理。SpringBoot 底层都是采用 Spring Data 的方式进行统一处理各种数据库,Spring Data 也是 Spring 中与 Spring Boot、Spring Cloud 等齐名的知名项目。Sping Data 官网:https://spring.io/projects/spring-data数据库相关的启动器 :可以参考官方文原创 2022-08-25 09:50:48 · 515 阅读 · 1 评论 -
狂神。SpringBoot学习(1)
Spring是一个开源框架,2003 年兴起的一个轻量级的 Java 开发框架,作者:Rod Johnson。Spring是为了解决企业级应用开发的复杂性而创建的,简化开发。SpringBoot 就是一个 javaweb 的开发框架,和 SpringMVC 类似,对比其他 javaweb 框架的好处,官方说是简化开发,约定大于配置, you can “just run”,能迅速的开发web应用,几行代码开发一个http接口。原创 2022-08-25 09:37:42 · 505 阅读 · 0 评论 -
狂神。SpringBoot员工管理系统项目练习。
首先,我们新建一个 springboot 项目。然后,在 resources/stastic 下导入 img、js、css 静态资源;在 resources/templates 下导入 html 静态资源。导入后我们的项目目录如下所示:(i18n是国际化的配置文件,后面再说;templates 下有的 html 放在了包里,方便管理)在 src/main/java/com/kuang 下新建我们需要的包:config、controller、pojo、dao。目录如下图所示:然后,我们在 pom 文件中导入我原创 2022-08-25 09:25:08 · 340 阅读 · 0 评论 -
狂神。Vue学习。
Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。Soc原则:关注点分离原则:渐进式框架:大概意思就是你可以只用我的一部分,而不是用了我这一点就必须用我的所有部分。Vue 的核心库只关注视图层,方便与第三方库或既有项目整合。HTML +原创 2022-07-16 17:41:17 · 1159 阅读 · 1 评论 -
狂神。SpringMVC学习(2)
环境:要求:创建一个存放书籍数据的数据库表:6.3、基本环境搭建新建一个Maven项目,起名为ssmbuild。并添加web的支持。导入相关的pom依赖包。Maven资源过滤设置.建立基本结构和配置框架!使用IDEA连接数据库。编写MyBatis的核心配置文件 mybatis-config.xml:编写实体类 com.kuang.pojo.Books:编写Dao层的接口 BookMapper:编写接口对应的xml文件 BookMapper.xml:编原创 2022-07-01 17:54:16 · 123 阅读 · 0 评论 -
狂神。SpringMVC学习(1)
**Model(模型):**数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao) 和 服务层(行为Service)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。**View(视图):**负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。**Controller(控制器):**接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返原创 2022-06-22 17:06:36 · 100 阅读 · 0 评论 -
狂神。Mybatis学习。
Mybatis环境:JDK 1.8Mysql 5.7maven 3.6.3IDEA回顾:JDBCMysqlJava基础MavenJunitSSM框架:配置文件的最好的方式:看官网文档。官网文档1、简介1.1、什么是MybatisMyBatis 是一款优秀的持久层框架。它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口原创 2022-04-23 11:30:00 · 654 阅读 · 0 评论 -
狂神。Spring学习。
1、Spring1.1、简介Spring:春天------>给软件行业带来了春天!2002,首次推出了Spring框架的雏形:interface21框架!Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日发布了1.0正式版。Rod Johnson,Spring Framework创始人,著名作者。很难想象Rod Johnson的学历,真的让好多人大吃一惊,他是悉尼大学的博士,然而他的专业不是计算机,而是音乐学。S原创 2022-05-09 18:01:57 · 146 阅读 · 0 评论 -
狂神。JavaWeb学习(3)(文件上传和邮件发送)
1、文件上传1.1、准备工作搭建一个空项目。细节不在赘述!😄注意点:这个路径记得要检查一下,要不不知道自己建到哪去了。这里不要忘记写。项目搭建好后,建议先运行一下,测试项目框架是否搭建完成。然后还需要导包:commons-fileupload-1.4.jar 和 commons-io-2.6.jar。传送门——>commons-fileupload-1.4.jar commons-io-2.6.jar有两种导包方式:如果我们建的是Mavne项目,把依赖复制到Pom.原创 2022-04-12 18:39:20 · 1298 阅读 · 0 评论 -
狂神。JavaWeb学习(2)
7、Cookie、Session7.1、会话**会话:**用户打开一个浏览器,点击了很多超链接,访问多个web资源,关闭浏览器,这个过程可以称之为会话。**有状态会话:**一个同学来过教室,下次再来教室,我们会知道这个同学,曾经来过,称之为有状态会话。你能怎么证明你是西开的学生?你——西开发票 西开给你发票。学校登记 西开标记你来过了。一个网站,怎么证明你来过?客户端——服务端服务端给客户端一个信件,客户端下次访问服务端带上信件就可以了; cookie服务器登记你来过了,下次原创 2022-04-06 18:13:59 · 1661 阅读 · 0 评论 -
狂神。JavaWeb学习(1)
1、基本概念1.1、前言web开发:web,网页的意思,www.baidu.com静态webhtml,css;提供给所有人看的数据始终不会发生变化!动态web淘宝,几乎是所有的网站;提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同!技术栈:Servlet/JSP,ASP,PHP在java中,动态web资源开发的技术统称为Javaweb;1.2、web应用程序Web 应用程序:可以提供浏览器访问的程序;a.html、b原创 2022-04-06 18:04:26 · 310 阅读 · 0 评论 -
狂神。SMBMS(超市订单管理系统)
SMBMS(超市订单管理系统)代码:(建议把静态资源和sql拿过来用,其他自己写一遍练手。注意修改相关配置文件。)链接:https://pan.baidu.com/s/12MmpF9msJVjLT1U77XYfRw提取码:11fv数据库:项目如何搭建?考虑是不是用Maven?依赖, jar包.1.项目搭建准备工作搭建一个maven web 项目.配置Tomcat.测试项目是否能够跑起来.Pom.xml 中导入项目中需要的jar包.(jsp,Servlet,mysql驱动,js原创 2022-04-06 17:35:58 · 5451 阅读 · 7 评论 -
狂神。MySql学习。
1、初识MySQLJavaEE:企业级Java开发 Web。前端(页面:展示:数据!)后台(连接点:连接数据库JDBC,连接前端(控制视图跳转,给前端传递数据))数据库(存数据,Txt,Excel,Word)只会写代码,学好数据库,基本混饭吃!操作系统,数据结构与算法!当一个不错的程序猿!离散数学,数字电路,体系结构,编译原理。+实战经验,高级程序猿~优秀的程序猿~1.1、为什么学数据库1、岗位需求2、现在的世界,大数据时代~,得数据者得天下。3、被迫需求:存数据。4、数据库是所原创 2022-03-18 15:02:33 · 415 阅读 · 0 评论 -
狂神。JavaScript学习。
1、什么是JavaScript1.1、概述javaScript是一门世界上最流行的脚本语言。Java,JavaScript10天~一个合格的后端人员,必须精通JavaScript。1.2、历史ECMAScript它可以理解为JavaScript的一个标准。最新版本已经到es6版本~但是大部分浏览器还只停留在支持es5代码上!开发环境–线上环境,版本不一致。2、快速入门2.1、引入JavaScript1.内部标签<script> //这里是JavaScript的一段原创 2022-02-10 15:12:19 · 229 阅读 · 0 评论 -
狂神。CSS学习。
1、什么是CSS如何学习CSS是什么CSS怎么用(快速入门)CSS选择器(重点+难点)美化网页(文字,阴影,超链接,列表,渐变…)盒子模型浮动定位网页动画(特效效果)1.1、什么是CSSCascading Style Sheet 层叠级联样式表CSS:表现(美化网页)字体,颜色,边距,高度,宽度,背景图片,网页定位,网页浮动。。。1.2、发展史CSS1.0CSS2.0:DIV(块)+CSS,HTML与CSS结构分离的思想,网页变得简单,SEOCSS2.1:浮动,定位原创 2022-01-29 16:42:11 · 175 阅读 · 0 评论 -
狂神。HTML学习。
一、初识HTML什么是HTMLHTML:Hyper Text Markup Language :(超文本标记语言),超文本包括:文字、图片、音频、视频、动画等.W3CW3CWorld Wide Web Consortion(万维网联盟)成立于1994年,Web技术领域最权威和具影响力的国际中立性技术标准机构。https://www.w3.org/http://www.chinaw3c.org/W3C标准包括:结构化标准语言(HTML、XML)表现标准语言(CSS)行为标原创 2022-01-24 17:28:20 · 464 阅读 · 0 评论 -
狂神。Java注解与反射学习笔记。
一、注解1.注解入门什么是注解Annotation是从JDK5.0开始引入的新技术.Annotation的作用:不是程序本身,可以对程序作出解释.(这一点和注释(comment)没什么区别)。可以被其他程序(比如:编译器等)读取.Annotation的格式 :注解是以"@注释名"在代码中存在的,还可以添加一些参数值,例。如:@SuppressWarnings(value=“unchecked”).Annotation在哪里使用?可以附加在package , cl原创 2021-12-14 11:14:52 · 150 阅读 · 0 评论 -
狂神。Java多线程学习笔记。
一、线程简介普通方法调用和多线程程序、进程、线程在操作系统中运行的程序就是进程,比如你的QQ,播放器,游戏,IDE等待。。。。。。一个进程可以有多个线程,如视频中同时听声音,看图像,看弹幕,等等。Process与Thread说起进程,就不得不说下程序。程序是数据和指令的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程是执行程序的一次执行过程,它是一个动态的概念,进程是系统分配资源的单位。通常一个进程可以包含若干个线程,当然一个进程至少包含一个线程,不然没有存在的意义,线程原创 2021-12-10 18:58:31 · 179 阅读 · 0 评论 -
狂神。Java网络编程学习笔记
网络编程1、概述计算机网络:计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接(有线性、无线)起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。网络编程的目的:传播交流信息、数据交换、通信。想要达到这个效果需要什么:如何准确的定位网络上的一台主机 192.168.1.100: 端口,定位到这个计算机上的某个资源。找到了这个主机,如何传输数据呢?JavaWeb : 网页编程 B原创 2021-12-02 17:31:47 · 159 阅读 · 0 评论 -
Java IO流学习笔记.
一、流的概念什么是流概念:内存与存储设备之间传输数据的通道。水借助管道传输;数据借助流传输。二、流的分类按方向(重点):输入流:将<存储设备>中的内容读到<内存>中。输出流:将<内存>中的内容写到<存储设备>中。按单位:字节流:以字节为单位,可以读写所有数据。字符流:以字符为单位,只能读写文本数据。按功能:节点流:具有实际传输数据的读写功能。过滤流:在节点流的基础之上增强功能。三、字节流原创 2021-11-27 16:09:04 · 136 阅读 · 0 评论 -
Java集合学习笔记。
一、集合的概念什么是集合概念:对象的容器,定义了对多个对象进行操作的常用方法。可实现数组的功能。和数组的区别:数组长度固定,集合长度不固定。数组可以存储基本类型和引用类型,集合只能存储引用类型.位置:java.util.*;二、Collection接口Collection体系集合Collection父接口特点:代表一组任意类型的对象,无序、无下标、不能重复。方法:boolean add(Object obj) //添加一个对象。boolean addAll原创 2021-11-22 17:18:48 · 136 阅读 · 0 评论 -
Java常用类学习笔记
一、内部类内部类的分类什么是内部类概念:在一个类的内部再定义一个完整的类。特点:编译之后可生成独立的字节码文件内部类可直接访问外部类的私有成员,而不破坏封装。可为外部类提供必要的内部功能组件。package commonclass.Demo01;//身体public class body { private String name; //头部 class Header{ public void show(){原创 2021-11-13 15:30:56 · 216 阅读 · 0 评论 -
狂神。Java异常学习笔记
一、什么是异常实际工作中,遇到的情况不可能是非常完美的,比如:你写的某个模块,用户输入不一定符合你的要求。你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,必要读取数据库的数据,数据可能是空的,我们的程序在跑着,内存或硬盘可能就满了,等等。软件程序运行过程中,非常可能遇到刚刚提到的这些异常问题,我们叫异常,英文是:Exception,意思是例外。这些,例外情况,或者叫异常,怎末让我们写的程序做出合理的处理。而且不至于程序崩溃。异常指程序运行中出现的不期而至的各种状况,如:文件找不到、网络连原创 2021-11-08 17:19:10 · 85 阅读 · 0 评论 -
狂神。Java面向对象学习笔记
一、初识面向对象面向对象&面向过程面向过程思想步骤清晰简单,第一部做什么,第二部做什么……面对过程是和处理一些较为简单的问题。面向对象思想物以类聚,分类的思维模式,思维问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。面向对象是和处理复杂的问题,适合处理需要多人协作的问题!对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象的思想类分析整个系统。但是,具体到微观操作,仍然需要面向过程的原创 2021-11-08 17:18:13 · 239 阅读 · 0 评论 -
狂神。Java数组学习笔记
一、数组概述数组的定义数组是相同数据类型的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组成而成。其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们.二、数组声明创建首先必须声明数组变量,才能在程序中使用数组。语法如下: dataType[] arrayRefVar; //首选的方法 或 dataType arrayRefVar[]; //效果相同,但不是首选的方法java语言使用n原创 2021-11-03 20:47:40 · 116 阅读 · 0 评论 -
狂神。Java方法学习
一、何谓方法System.out.println(),那么它是什么呢? 答:System是"类".out是“输出对象”.println()是“方法”。Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合法包含于类或对象中方法在程序中被创建,在其他地方被引用设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展。package原创 2021-10-30 20:11:30 · 86 阅读 · 0 评论 -
狂神。Java流程控制学习
一、用户交换ScannerScanner对象我们可以通过Scanner类来获取用户的输入。基本语法:Scanner s = new Scanner(System.in)。通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取之前我们一般需要使用hasNext()和hasNextLine()判断是否还有输入的数据.package scanner;import java.util.Scanner;public class Demo01 {原创 2021-10-29 10:27:15 · 104 阅读 · 0 评论 -
狂神。MarkDown语法学习
MarkDown语法一级标题二级标题三级标题字体helloworldhelloworldhello worldhelloworld引言选择狂神说Java,走向人生巅峰。分割线图片[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e246F6FA-1635474471604)(C:\Users\wangcheng\Desktop\新建文件夹\we.png)]超链接[点击跳转](百度一下,你就知道 (baidu.com))列表ABC原创 2021-10-29 10:28:29 · 85 阅读 · 0 评论 -
狂神.java基础学习
一、注释、标识符、关键字注释书写注释是一个非常好的习惯 BAT平时写代码一定要注意规范Java中的注释有三种:单行注释多行注释文档注释public class HelloWorld { public static void main(String[] args) { System.out.println("Hello,World!"); }}//单行注释//只能注释一行文字//输出一个HelloWorld!//多行注释/*原创 2021-10-27 19:00:13 · 240 阅读 · 0 评论