java笔记
文章平均质量分 54
java笔记
sweetheart7-7
学习笔记////////多思考~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Kafka 底层原理分析学习笔记
Kafka是一种用Scala和Java开发的分布式消息系统,具备高性能、高可靠、高吞吐和可伸缩等特点,适用于大数据场景下的分布式数据交换。其核心组件包括生产者、消费者、Broker服务器和Topic主题,采用多Broker部署、分区存储、多副本机制等设计保证可靠性。Kafka依赖ZooKeeper进行集群管理,通过临时节点和监听机制实现Controller的选举和故障转移。当Broker启动时,会在ZooKeeper注册节点信息,首个启动的Broker成为Controller,负责集群状态管理和节点间通信。原创 2025-05-28 09:29:13 · 1264 阅读 · 0 评论 -
JUC(Java并发编程)
Java 并发工具以并发、并行为主线进程线程二者对比单核 cpu 下,线程实际还是 串行执行 的。操作系统中有一个组件叫做任务调度器,将cpu 的时间片(windows 下时间片最小约 15毫秒)分给不同的线程使用,只是由于 cpu 在线程间(时间片很短)的切换非常快,人类感觉是 同时运行的。总结为一句话就是:微观串行,宏观并行,一般会将这种 线程轮流使用 CPU的做法称 并发,concurrent多核cpu下,每个核(core)都可以调度运行线程,这时候线程可以是并行的。引用Rob Pike 的一段描述原创 2025-03-27 11:39:03 · 605 阅读 · 0 评论 -
JVM(JAVA虚拟机)笔记
JVM:Java 程序的运行环境(Java二进制字节码的运行环境)一次编写,到处运行自动内存管理,垃圾回收功能数组下标越界检查多态比较:JDK(JRE + 编译工具(javac、jconsle、jmap、jps等)) > JRE(JVM + 基础类库(lang包下的String类等)) > JVM(运行字节码文件)问问自己,什么时候需要自定义类加载器1) 想加载非 classpath 随意路径中的类文件2) 都是通过接口来使用实现,希望解耦时,常用在框架设计。原创 2025-02-19 17:21:17 · 1251 阅读 · 0 评论 -
JDBC基础
Demo01import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class Demo01 { public static void main(String[] args) { try { // 加载驱动类 Class.forName("com.mysql.jdbc.Driver")...原创 2021-03-20 21:11:06 · 340 阅读 · 2 评论 -
正则表达式(Java)
Demo01package RegexTest;/** * 正则基本操作 */import java.util.regex.Matcher;import java.util.regex.Pattern;public class Demo01 { public static void main(String args[]) { Pattern p = Pattern.compile("\\w+"); Matcher m = p.match...原创 2021-03-04 12:06:41 · 166 阅读 · 1 评论 -
设计模式(Java)
单例模式饿汉式package singleton;/** * 测试饿汉式单例模式 */public class SingletonDemo01 { // 类初始化时,立即加载这个对象(没有延时加载的优势).加载类时,天然的是线程安全的 private static SingletonDemo01 instance = new SingletonDemo01(); private SingletonDemo01(){ } // 没有同步方法,调.原创 2021-03-02 13:22:15 · 394 阅读 · 0 评论 -
JVM核心之JVM运行和类加载全过程
package JVMLoad;public class Demo01 { static{ System.out.println("Demo01类的静态初始化"); } public static void main(String[] args) throws Exception{ System.out.println("Demo01的main方法"); // 主动引用// new A();// ...原创 2021-02-20 21:13:13 · 347 阅读 · 0 评论 -
Java字节码操作(JAVAassist)
常见的字节码操作类库https://github.com/jboss-javassist/javassistJAVAssist的API详解Intellij IDEA 添加jar包的三种方式用javassist生成一个新的类import javassist.*;/** * 测试用javassist生成一个新的类 */public class Demo01 { public static void main(String[] args) throws Exception{.原创 2021-02-20 14:40:20 · 559 阅读 · 1 评论 -
Java脚本引擎执行JavaScript代码
src下a.jsfunction test(){ var arr = [1, 2, 3, 4, 7]; for(i in arr){ print(arr[i]); }}test();import javax.script.Invocable;import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;import java.io.FileReader;imp..原创 2021-02-20 11:54:00 · 421 阅读 · 0 评论 -
java反射基础与动态编译
获取Class对象反射常见作用bean.Userpackage bean;public class User { private int id; private int age; private String uname; public User(){ } public User(int id, int age, String uname) { this.id = id; this.age = age;...原创 2021-02-17 18:24:27 · 681 阅读 · 1 评论 -
java注解
注解内置注解import java.util.ArrayList;import java.util.List;public class Demo1 { @Override public String toString() { return super.toString(); } @Deprecated public static void test01(){ System.out.println("test01");原创 2021-02-17 13:04:41 · 245 阅读 · 2 评论 -
java-webserver基础
反射/** * 反射:把Java类中的各种构造(方法、属性、构造器、类名)映射成一个个的Java对象 * 1. 获取Class对象 * Class.forName("完整路径") * 2. 可以动态创建对象 * clz.getConstructor().newInstance() * @author sweetheart * */public class ReflectTest { public static void main(String[] args) throws Ex原创 2021-02-15 19:10:21 · 482 阅读 · 1 评论 -
第十二章编程作业
1). 编程实现:将网络上一张图片或一个mp3或一个视频的信息保存到本地。代码:package cn.whb.test12;import java.io.BufferedInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.net.URL;public class Work01 { public static voi原创 2020-11-19 17:04:34 · 1014 阅读 · 0 评论 -
网络编程
文章目录认识TCP和UDPInetAddressInetSocketAddressURL类简易的网络爬虫UDP基本使用接收端发送端UDP传输基本数据类型UDP传输序列化对象UDP传输文件UDP模拟在线咨询TCP基本使用TCP模拟登陆TCP文件上传模拟登陆网络编程-聊天室ReceiveSendChatClient方法功能InetAddress封装计算机的IP地址和DNS(没有端口信息)。 常用方法:getLocalHost()、getByName()、getAllByName()、原创 2020-11-15 10:28:10 · 371 阅读 · 0 评论 -
第十一章编程作业
1). 设计一个多线程的程序如下:设计一个火车售票模拟程序。假如火车站要有100张火车票要卖出,现在有5个售票点同时售票,用5个线程模拟这5个售票点的售票情况。package cn.whb.test11;public class Work1 { public static void main(String[] args) { SoleToken s = new SoleToken(100); new Thread(s,"窗口一").start(); new Thread(s,"窗口二"原创 2020-11-01 09:06:10 · 817 阅读 · 1 评论 -
多线程基础
文章目录基本概念程序进程线程线程和进程的区别进程与程序的区别通过继承Thread类实现多线程多线程下载图片通过Runnable接口实现多线程抢票龟兔赛跑通过Callable接口实现多线程lambda表达式简化线程的使用lambda表达式的基本使用线程状态新生状态(New)就绪状态(Runnable)运行状态(Running)阻塞状态(Blocked)死亡状态(Terminated)终止线程的典型方式暂停线程执行sleep/yield线程的联合join()获取线程基本信息的方法观察线程的状态线程的优先级其他方原创 2020-10-30 15:18:12 · 586 阅读 · 0 评论 -
第十章编程作业
1 ) 实现字节数组和任何基本类型和引用类型执行的相互转换提示:使用ByteArrayInutStream和ByteArrayOutputStream。import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;impor原创 2020-10-23 19:40:06 · 613 阅读 · 2 评论 -
IO基础
文章目录流的概念Java中流的概念细分Java中IO流类的体系四大IO抽象类File类的基本使用编码与解码IO基本操作流程文件字节流利用文件字节流拷贝文件文件字符流字节数组流综合(对接流)数据源数据源data source,提供数据的原始媒介。常见的数据源有:数据库、文件、其他程序、内存、网络连接、IO设备.数据源分为:源设备、目标设备。1. 源设备:为程序提供数据,一般对应输入流。2. 目标设备:程序数据的目的地,一般对应输出流。流的概念流是一个抽象、动态的概念,是一连串连续动态原创 2020-10-20 07:18:33 · 618 阅读 · 1 评论 -
Eclipse 教程
Eclipse的使用前言一、Eclipse的介绍二、下载与安装1.下载2.安装三、基本使用步骤1.启动2.创建项目3. 创建包及class文件四、一些使用技巧1. 快速生成构造方法2.自动补全3. 快速生成get-set方法4. 查找某变量所在位置,或者替换某变量的变量名5. 快速导入包6. 快速生成Sytem.out.println()函数7. 快速注释多行8. 实现多行缩进五、调试六、查看开发文档七、进入导入的方法所在的包八、常用快捷键九、拓展1. 重写tostring方法2.Comparable接口的原创 2020-10-05 09:43:42 · 2170 阅读 · 2 评论 -
第九章编程作业
1. 使用List和Map存放多个图书信息,遍历并输出.其中商品属性:编号,名称,单价,出版社;使用商品编号作为Map中的key.import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class TestStoreBookInfo { public static void main(String[] args) { List<原创 2020-10-03 00:41:18 · 1406 阅读 · 6 评论 -
容器的介绍、实现及使用
泛型:数组就是一种容器,可以在其中放置对象或基本类型数据.数组的优势:是一种简单的线性序列,可以快速地访问数组元素,效率高.如果从效率和类型检查的角度讲,数组是最好的.数组的劣势:不灵活.容量需要事先定义好,不能随着需求的变化而扩容.以下是容器的接口层次结构图:----------------------------------------- Collection Map ^原创 2020-10-01 16:42:24 · 711 阅读 · 0 评论 -
第六章编程题作业
1. 编写程序接收用户输入分数信息,如果分数在0—100之间,输出成绩.如果成绩不在该范围内,抛出异常信息,提示分数必须在0—100之间.要求:使用自定义异常实现.----------------------------public class InputScore { public static void main(String[] args) { Student st1 = new Student("张三",101); }}class Student{ private Stri原创 2020-09-26 23:41:39 · 2428 阅读 · 0 评论 -
异常的捕获与处理
异常机制:异常指程序运行过程中出现的非正常现象,例如用户输入错误、除数为零、需要处理的文件不存在、数组下标越界等.在Java的异常处理机制中,引进了很多用来描述和处理异常的类,称为异常类.异常类定义中包含了该类异常的信息和对异常进行处理的方法.所谓异常处理,就是指程序在出现问题时依然可以正确的执行完.Java是采用面向对象的方式来处理异常的.处理过程: 1. 抛出异常:在执行一个方法时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行路径,并把异常对象提交给JRE.原创 2020-09-26 22:12:17 · 1102 阅读 · 0 评论 -
第八章编程作业
1. 验证键盘输入的用户名不能为空,长度大于6,不能有数字.提示:使用字符串String类的相关方法完成可以使用Scanner的nextLine()方法,该方法可以接口空的字符串.--------------------------------------------import java.util.Scanner;public class CheckUsername { public static void main(String[] args) { Scanner scanner =原创 2020-09-24 23:16:38 · 492 阅读 · 0 评论 -
常用类(包装类;String类;StringBuilder/StringBuffer类;时间相关类;Math类;File类;枚举)
包装类:Java是面向对象的语言,但并不是“纯面向对象”的,因为我们经常用到的基本数据类型就不是对象.但是我们在实际应用中经常需要将 基本数据转化成对象,以便于操作.比如:将基本数据类型存储到Object[]数组或集合中的操作等等.为了解决这个不足,Java在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class). 包装类均位于java.lang包,八种包装类和基本数据类型的对应关系如表: ----------原创 2020-09-24 17:49:25 · 445 阅读 · 0 评论 -
第七章编程作业
1. 数组查找操作定义一个长度为10 的一维字符串数组,在每一个元素存放一个单词;然后运行时从命令行输入一个单词,程序判断数组是否包含有这个单词,包含这个单词就打印出“Yes”,不包含就打印出“No”.---------------------------------------------------------------------------import java.util.*;public class ArraySearch { public static void main(St原创 2020-09-21 08:44:55 · 412 阅读 · 1 评论 -
第五章编程作业
1. 编写应用程序,创建类的对象,分别设置圆的半径、圆柱体的高,计算并分别显示圆半径、圆面积、圆周长,圆柱体的体积. 实现思路及关键代码: 1) 编写一个圆类Circle,该类拥有: a) 一个成员变量,radius(私有,浮点型);//存放圆的半径 b) 两个构造方法(无参、有参); c) 三个成员方法 double getArea() //获取圆的面积 double getPerimeter() //获取圆的周长 void show() //将圆的关径、周原创 2020-09-20 23:49:12 · 1293 阅读 · 0 评论 -
数组的基本使用(一些实用的方法)及两个简单的算法
数组概述和特点:数组的定义数组是相同类型数据的有序集合.数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成.其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们.数组的三个基本特点: 1. 长度是确定的.数组一旦被创建,它的大小就是不可以改变的. 2. 其元素必须是相同类型,不允许出现混合类型. 3. 数组类型可以是任何数据类型,包括基本类型和引用类型.数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量.数组本身就是对原创 2020-09-20 17:46:24 · 273 阅读 · 0 评论 -
String类及常用方法
String类: 1. String类又称作不可变字符序列. 2. String位于java.lang包中,Java程序默认导入java.lang包下的所有类. 3. Java字符串就是Unicode字符序列,例如字符串“Java”就是4个Unicode字符’J’、’a’、’v’、’a’组成的. 4. Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义的类String,每个用双引号括起来的 字符串都是String类的一个实例.当"+"运算符两侧的操作数中只要有原创 2020-09-20 09:40:18 · 424 阅读 · 0 评论 -
面向对象基础(二)
抽象类和抽象方法:抽象方法: 使用abstract修饰的方法,没有方法体,只有声明.定义的是一种“规范”,就是告诉子类必须要给抽象方法 提供具体的实现.抽象类: 包含抽象方法的类就是抽象类.通过abstract方法定义规范,然后要求子类必须定义具体实现.通过抽象类, 我们就可以做到严格限制子类的设计,使子类之间更加通用.注意: 1. 有抽象方法的类只能定义成抽象类 2. 抽象类不能实例化,即不能用new来实例化抽象类. 3. 抽象类可以包含属性、方法、构造方法.但是构造方原创 2020-09-20 00:26:35 · 323 阅读 · 0 评论 -
JAVA杂碎知识点整理
此博客随时补充一些零碎知识点原创 2020-09-18 19:11:42 · 460 阅读 · 0 评论 -
飞机游戏代码(JAVA)
MyGameFrame类:主要的调用类package sc.wh.game;import javax.swing.JFrame;import java.awt.Color;import java.awt.Font;import java.awt.Frame;import java.awt.Graphics;import java.awt.Image;import sc.wh.game.*;import java.awt.event.KeyAdapter;import java.awt原创 2020-09-17 17:42:57 · 4948 阅读 · 4 评论 -
JAVA面向对象(基础)
JAVA面向对象基础简单的面向对象类的定义与实现:public class Student { public static void main(String[] args){ Student stu = new Student(); // 创建对象 stu.name = "www"; // 设置属性值 stu.age = 19; Computer c1 = new Computer(); // 创建一个电脑对象原创 2020-09-14 19:59:39 · 542 阅读 · 0 评论 -
JAVA第四章编程作业
编程题:1. 编写 Java 程序用于显示人的姓名和年龄。定义一个人类Person。 该类中应该有两个私有属性: 姓名 (name) 和年龄 (age) 。定义构造方法用来初始化数据成员。再定义显示(display()) 方法将姓名和年龄打印出来。在 main 方法中创建人类的实例然后将信息显示。 public class Person { private String name; private byte age; void display(){ System.out.pr原创 2020-09-12 17:11:52 · 750 阅读 · 0 评论 -
JAVA基础(笔记)
Java的特点:平台无关性 高可靠性和安全性 分布式应用和多线程Java的跨平台的实现原理:java在操作系统上加入了jvm虚拟机,程序运行在jvm上,jvm会自动根据不同操作系统将相同的.class字节码解释成不同的机器码关于Java跨平台原理的说法:Java源程序要先编译成与平台无关的字节码文件(.class),然后字节码文件再被解释成机器码运行Java语言具有一次编译,到处运行的特点,可以在所有的平台上运行JDK、JRE、JVM 的区别和联系:JDK(java develo原创 2020-09-10 21:45:14 · 344 阅读 · 0 评论 -
JAVA第三章编程作业
尚学堂JAVA第三章编程作业:public class TestWork { public static void main(String args[]){ System.out.println(trans(64)); sumNum(100); System.out.println(sum); fiBo(40,1,1); } static long sum = 0; // 转换进制 sta原创 2020-09-10 21:30:41 · 442 阅读 · 0 评论
分享