
Java学习笔记
菜菜2022
这个作者很懒,什么都没留下…
展开
-
【Docker】学习Docker(一)
环境配置十分麻烦,每个机器都需要部署环境windows上开发,部署在linux环境上docker的思想来自于集装箱,利用隔离机制,可以将服务器运用到极致。新技术的出现都是为了解决现有的问题!转载 2022-08-22 20:43:42 · 101 阅读 · 0 评论 -
【Java】深入理解Java虚拟机P1-3(JVM性能调优+内存模型+虚拟机原理)
JDK JRE JVM的区别和联系 JDK:Java Development Kit,Java 开发工具包 JRE:Java Runtime Environment,Java 运行时环境 JVM:Java Virtual Machine, Java 虚拟机,它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。jvm 是 Java 能够跨平台的核心。 这三者的关系是:一层层的嵌套关系。JDK>JRE>JVM。 图片源原创 2021-07-22 14:15:48 · 196 阅读 · 0 评论 -
【Java-II】注解和反射 P8-10(Day21-20210721-Day3)
2.2 所有类型的Class对象 int[] a=new int[10]; int[] b = new int[100]; System.out.println(a.getClass().hashCode()); System.out.println(b.getClass().hashCode()); //输出 1956725890 1956725890 2.3 类加载内存分析 类的加载与ClassLoader的理解 2.4 分析类初始化 什么时候会发生类的初始化 ...原创 2021-07-21 22:54:32 · 128 阅读 · 0 评论 -
【Java-II】注解和反射 P5-7(Day21-20210720-Day2)
第二章 2.1 反射机制 new出来的和反射出来的相差好几十倍,除了特殊情况,不要用反射 获取Class的方法 package reflection; //什么叫反射 public class test02 { public static void main(String[] args) throws ClassNotFoundException { //通过反射获取类的class对象 Class c1=Class.forName("reflection.U原创 2021-07-20 22:47:13 · 122 阅读 · 2 评论 -
【Java-II】注解和反射 P4(Day21-20210720-Day2)
1.4 自定义注解 package annotation; import javax.xml.bind.Element; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; //自定义注解 public class Test03 {原创 2021-07-20 22:01:43 · 122 阅读 · 0 评论 -
【Java-II】注解和反射 P1-3(Day20-20210719-Day1)
1.1 什么是注解 注解起到规范和约束的作用。 @Override //重写注解 @Deprecated //废弃,不推荐程序员使用,但是可以使用,或者存在更好的方式 1.2 内置注解 package annotation; //镇压警告,这是一个可以放置参数的注解 @SuppressWarnings("all") public class Test01 extends Object{ @Override public String toString() { retur原创 2021-07-20 20:57:30 · 115 阅读 · 0 评论 -
【Java-II】网络编程实战讲解 P7-12(Day19-20210718-Day2)
1.7 TCP文件上传实现 package web; import java.io.*; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; public class testServerDemo02 { public static void main(String[] args) throws IOException { //1、创建服务 ServerSo原创 2021-07-18 22:38:15 · 147 阅读 · 1 评论 -
【Java-II】网络编程实战讲解 P1-6(Day18-20210717-Day1)
1.1 什么是计算机网络 1.2 网络通信的两个要素 1.3 IP地址 package web; import java.net.InetAddress; import java.net.UnknownHostException; public class testInetAddress { public static void main(String[] args) { try { //查询本机地址 InetAddress原创 2021-07-17 22:51:36 · 74 阅读 · 1 评论 -
【Java-II】多线程详解 P24-28(Day18-20210717-Day6)
生产者消费者问题 package threadLearn.deadlock; import java.sql.Connection; //测试:生产者消费者模型-->利用缓冲区解决:管程法 //生产者,消费者,产品,缓冲区 public class testPC { public static void main(String[] args) { SynContainer synContainer = new SynContainer(); ne原创 2021-07-17 15:32:54 · 93 阅读 · 2 评论 -
【Java-II】多线程详解 P22-23(Day17-20210716-Day5)
死锁 Case1 package threadLearn.deadlock; //死锁:多个线程 public class DeadLock { public static void main(String[] args) { Makeup g1 = new Makeup(0,"灰姑娘"); Makeup g2 = new Makeup(1,"白雪公主"); g1.start(); g2.start(); } } //口红原创 2021-07-16 22:41:13 · 118 阅读 · 1 评论 -
【Java-II】多线程详解 P20-21(Day17-20210716-Day5)
同步方法及同步块 使用synchronized锁方法实现排队: package threadLearn.syn; //不安全的买票 public class UnsafeBuyTicket{ public static void main(String[] args) { BuyTicket buyTicket = new BuyTicket(); new Thread(buyTicket,"苦逼的我").start(); new Threa原创 2021-07-16 21:28:31 · 83 阅读 · 0 评论 -
【Java-II】多线程详解 P18-19(Day16-20210715-Day4)
线程同步 发生在多个线程操作同一个资源 线程同步机制 三大不安全案理 每个线程都有自己的工作内存 Case1:买票 package threadLearn.syn; //不安全的买票 public class UnsafeBuyTicket{ public static void main(String[] args) { BuyTicket buyTicket = new BuyTicket(); new Thread(buyTicket,"苦逼的我").st原创 2021-07-16 19:12:51 · 134 阅读 · 1 评论 -
【Java-II】多线程详解 P14-17(Day16-20210715-Day4)
线程强制执行 package threadLearn.state; //测试Join方法 ——>想象成插队 public class testJoin implements Runnable{ @Override public void run() { for (int i = 0; i < 1000; i++) { System.out.println("线程vip来了——>"+i); } } pu原创 2021-07-15 20:18:40 · 93 阅读 · 1 评论 -
【Java-II】多线程详解 P11-13(Day15.16-20210714.15-Day3.4)
线程状态 其实这种设置flag不让控制台输出的方式并不能真正的让线程停止,只是不让其输出: package threadLearn.state; //测试stop //1.建议线程正常停止--->利用次数,不建议死循环。 //2.建议使用标志位--->设置一个标志位 //3.不要使用stop或者destory等过时或者JDK不建议使用的方法(有bug或弊端) public class TestStop implements Runnable{ //1. 设置一个标识位 pri原创 2021-07-15 16:49:27 · 118 阅读 · 1 评论 -
【Java-II】多线程详解 P9-10(Day14、15-20210713、14-Day2、3)
09 静态代理 package threadLearn.demo02; //静态代理模式总结: //真实对象和代理对象都要使用同一个接口 //代理对象要代理真实角色,代理对象 //好处: //代理对象可以做真实对象做不了的事情 //真实对象专注做自己的事情 public class StaticProxy { public static void main(String[] args) { You you = new You()原创 2021-07-14 21:05:52 · 105 阅读 · 1 评论 -
【Java-II】多线程详解 P6-8(Day14-20210713-Day2)
06 初识并发问题——以购买火车票为例 package threadLearn.demo01; public class TestThread4 implements Runnable{ //票数 private int ticketNums=10; @Override public void run() { while (true){ if (ticketNums<=0){ break;原创 2021-07-13 20:21:44 · 123 阅读 · 1 评论 -
【Java-II】多线程详解 P3(Day5-20210704-Day1)
程序:main线程 gc守护线程 (JVM创建的 用于垃圾回收) 02 线程创建 线程创建的三种方式 Thread class Runnable 接口 Callable 接口(工作之后用的多) Java虚拟机允许同时执行多个线程 线程创建方式1: 1、继承Thread类,重写run()方法,调用start()开启线程 线程启动需要时间,线程开启不一定立即执行,需要CPU调度执行 demo例子 package threadLearn.demo01; public class TestThread1 ex原创 2021-07-13 15:30:11 · 149 阅读 · 0 评论 -
【Java】使用idea进行Java后端开发 常用的快捷键
try…catch… 对于多行代码想要使用trycatch代码块将其包围起来,只需选中需要包围的代码块,按住组合键:ctrl+alt+t即可选择是try-catch还是try-catch-finally原创 2021-07-13 15:25:23 · 188 阅读 · 0 评论 -
【Java-II】多线程详解 P1-2(Day5-20210704-Day1)
原创 2021-07-04 23:39:56 · 89 阅读 · 0 评论 -
【Java基础】【狂神说Java】Java零基础学习视频通俗易懂P77-79(异常)(Day5-20210704)
package exception; public class Test { public static void main(String[] args) { int a=1; int b=0; try{//try监控区域 System.out.println(a/b); }catch (Exception e){//catch捕获异常 括号里是:想要捕获的异常类型 //可以多个catc...原创 2021-07-04 23:10:09 · 114 阅读 · 0 评论 -
【Java基础】【狂神说Java】Java零基础学习视频通俗易懂P60-76(OOP)(Day4、5-20210703、04)
同一个包下的类不需要导入就可以使用,不同包下的类,必须导入包才能使用。 static修饰静态方法,静态方法可以通过类名.方法名,进行调用,非静态方法通过这种方式进行调用会报错。 static修饰的内容是和类一起加载的,非静态方法是和对象一起生成的(类实例化之后才存在),所以static方法不能调用非静态方法。 Java是值传递 一个类里只能有一个public的类 package oop; public class Student { //静态方法 通过类名.方法名 调用 publ...原创 2021-07-04 22:03:27 · 215 阅读 · 2 评论 -
【Java基础】【狂神说Java】Java零基础学习视频通俗易懂P52-59(数组)(Day3-20210702)
1 数组原创 2021-07-02 20:47:36 · 173 阅读 · 1 评论 -
【Java基础】【狂神说Java】Java零基础学习视频通俗易懂P45-51(方法)(Day3-20210702)
1 方法 1.1 方法的基本知识 main方法是由java虚拟机调用的 1.2 方法的重载 1.3 命令行传参 package method; public class Demo03 { public static void main(String[] args) { for(int i=0;i<args.length;i++){ System.out.println(args[i]); } } } 打开cmd jav原创 2021-07-02 15:27:38 · 171 阅读 · 0 评论 -
【Java基础】【狂神说Java】Java零基础学习视频通俗易懂P33-44(Day3-20210702)
p33 Java流程控制01:用户交互Scanner p34 Java流程控制02:Scanner进阶使用 p35 顺序结构 p36 if选择结构 p37 Switch选择结构 p38 While循环详解 p39 DoWhile循环 p40 For循环详解 1 Java流程控制01:用户交互Scanner 1.1 next() package base; import java.util.Scanner; public class Demo01 { public static void m.原创 2021-07-02 14:11:56 · 204 阅读 · 2 评论 -
【Java基础】【狂神说Java】Java零基础学习视频通俗易懂P27-32(Day2-20210628)
P27 P27 基本运算符 P28 自增自减运算符原创 2021-07-02 12:17:06 · 169 阅读 · 2 评论 -
【Java基础】【狂神说Java】Java零基础学习视频通俗易懂P21-26(Day1昨天忘记发布了)
Java小技巧(idea下) psvm +tab键 补全 public static void main(String[] args) { } sout+enter键/鼠标点击选择 可以实现补全 System.out.println(); System.out.println(); /*+enter键生成多行注释符号 /* */ Java基本语法 1 注释、标识符、关键字 1.1 注释 1.1.1 单行注释(只能注释改行为文字) //这里写注释,只能注释改行为文字原创 2021-06-28 15:01:37 · 183 阅读 · 1 评论 -
【Java基础】【狂神说Java】Java零基础学习视频通俗易懂P1-20(Day1)
JDK JRE JVM 命令行下编译运行java文件 Hello.java文件内容 public class Hello{ public static void main(String[] args){ System.out.print("Hello World!"); } } 准备好java文件之后就可以进行下面的操作了!! 打开cmd,进入Hello.java所在的文件路径,然后cmd下输入javac Hello.java,编译文件生成.class文件 javac Hello.java ..原创 2021-06-27 16:26:25 · 207 阅读 · 0 评论 -
【Java学习笔记】1-13重载
方法的重载 定义: **多个方法的名称一样,但是参数列表不一样。**方法名称区分大小写!!! 好处: 只需要记住唯一一个方法名称,就可以实现类似的多个功能。 方法重载与下列因素相关: 1、参数个数不同 2、参数类型不同 3、参数的多类型顺序不同 方法重载与下列因素无关: 1、与参数的名称无关 2、与方法的返回值类型无关 //错误示范,方法重载与方法的返回值无关 public static int sum(int a,int b){ return a+b } public static double sum原创 2021-03-08 00:23:43 · 205 阅读 · 0 评论