- 博客(32)
- 收藏
- 关注
原创 Javaweb开发——maven
Apache Maven是- -个项目管理和构建工具,它基于项目对象模型(POM Project Object Model)的概念,通过一小段描述信息来管理项目的构建。
2024-09-05 22:03:00
969
原创 Java基础——日志、枚举、类加载器、反射
(JDK 8版本以后,HSDB被取消),点击左上角的file按钮然后点击第一个,在输入进程id进行查询,然后点击tools按钮后选择Class Browser浏览类的信息,找到对应的B类,点击进入找到Constant Pool常量池点击,观察C类的值。平台类加载器,负责加载JDK中一些特殊的模块,负责加载lib/modules内部类(这个类是从JDK9开始的,JDK9之前是: (Extension Class Loader) 扩展类加载器负责加载jre\lib\ext 目录下的类)
2024-08-29 15:47:47
963
原创 Java基础——网络编程
指在网络通信协议下,不同计算机上运行的程序,进行数据传输1)CS架构(Client Server 客户端 服务端)在用户本地有一个客户端程序,在远程有一个服务端程序(如微信)画面精美,功能丰富用户体验度更高需要开发客户端,也要开发服务端,用户需要下载和更新的时候比较麻烦适合定制专业化的办公类软件如:IDEA、网游2)BS架构(Browser Server 浏览器 服务器端)只需要一个浏览器,用户通过不同的网址,客户访问不同的服务器端程序。
2024-08-28 13:31:21
1353
原创 Java基础——线程(线程通信、线程生命周期、线程池、单列设计模式)
确保线程能够按照预定的顺序执行,并且能够安全地访问共享资源,使多条线程更好的进行协同工作。
2024-08-26 22:21:43
1751
原创 Java基础——线程(进程和线程,线程的开启方式、相关方法、安全和同步)
1) 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动是系统进行资源分配的基本单位(简单解释为程序的执行过程)2)每一个进程都有自己的空间,在没有经过进程本身允许的情况下,一个进程不可以直接访问其它的的进程空间进程是动态产生,动态消亡的任何进程都可以同其它进程一起并发执行3) 多进程同时工作,对于CPU而言,它是在多个进程间轮换执行的。
2024-08-23 15:46:18
873
原创 Java基础——IO流(二)
字节缓冲流在源代码中内置了字符数组,可以提高读写效率注意:瑷冲流不具备读写功能,它们只是对普通的流对象进行包装真正和文件建立关联的,还是普通的流对象1.基本字符使用方法2. .字符缓冲流 + 字符数组3.字符流的两个特有方法。
2024-08-22 13:49:45
1052
1
原创 Web后端开发——请求响应
1)在原始的web程序中,获取请求参数,需要通过HttpServletRequest 对象手动获取。//getParameter为红色需要引入tomcat 的lib文件夹下的jsp-api.jar和servlet-api.jar2)SpringBoot简单参数:参数名与形参变量名相同,定义形参即可接收参数如果方法形参名称与请求参数名称不匹配,可以使用 @RequestParam 完成映射。//@RequestParam 完成映射){
2023-12-04 22:00:41
974
原创 Java基础——IO流(一)
在缓冲流中定义了数组拷贝new byte[8192],所以加快了速度,相对于普通流 加上自定义数组拷贝的效率很多时候是差不多的,缓冲流也可以加上自定义数组一起进行拷贝,效率会更好些,如果加大普通流 加上自定义数组的数组容量也会有相应的速度。注:缓冲流不具备读写功能, 它们只是对普通的流对象进行包装 ,真正和文件建立关联的, 还是普 通的流对象。加密思路:改变原始文件中的字节,就无法打开了。解密思路:将文件中的字节还原成原始字节即可。字节缓冲流在源代码中内置了字节数组,可以提高读写效率。
2023-10-10 09:30:19
190
原创 创建SpringBoot web项目遇见的坑
注意:JDK和Java的版本(我用的是JDK8,java默认会是17)因为我的是JDK8,所以选择了一个比较低版本SpringBoot。在下面的文件中添加:server.port=8888,更改端口号。1.java: 警告: 源发行版 17 需要目标发行版 17。第二步 启动时报下面的错误,说明端口被占用。可以在Setting设置自己的maven。第一步 创建web项目。注意下面截图位置的配置。
2023-09-14 14:29:29
168
原创 Maven安装步骤
1.选择 IDEA中 File --> Settings --> Build,Execution,Deployment --> Build Tools --> Maven。方式一:打开IDEA,选择右侧Maven面板,点击 + 号,选中对应项目的pom.xml文件,双击即。方式二:打开IDEA,选择右侧Maven面板,点击 + 号,选中对应项目的pom.xml文件,双击即。1.Maven 中的坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置。2.填写模块名称,坐标信息,点击finish,创建完成。
2023-09-11 08:16:47
165
原创 Java基础——Stream流、File类
static <T> Stream<T> stream(T[] array)将传入的数组封装到 Stream 流对象中。Collections.addAll(list, "林青霞", "张曼玉", "王祖贤", "柳岩","张敏","张无忌");Collections.addAll(girl, "黄蓉", "林超风", "小龙姐", "赵敏","周芷若","小昭");Collections.addAll(boy, "郭靖", "黄药师", "王祖贤", "乔峰","杨过","张无忌");
2023-09-05 14:23:52
267
原创 Java基础——集合(HashSet 集合类、LinkedHashSet 集合类、Collections 集合工具类、Map 接口、Map 集合的遍历方式)
④boolean containsKey(Object key) 判断集合是否包含指定的键。Collections.addAll(list1, "南京市", "扬州市", "苏州市", "无锡市", "常州市");Collections.addAll(list2, "武汉市", "孝感市", "十堰市", "宜昌市", "鄂州市"); ⑦int size() 集合的长度,也就是集合中键值对的个数。
2023-09-02 09:32:12
2108
1
原创 Java基础——集合(泛型、数据结构(树)、TreeSet 集合)
③ 如果一个节点没有子节点或者父节点,则该节点相应的指针属性值为Nil,这些Nil视为。 ④ 如果某一个节点是红色,那么它的子节点必须是黑色(不能出现两个红色节点相连的情。 ⑤ 对每一个节点,从该节点到其所有后代叶节点的简单路径上,均包含相同数目的黑色。 需要进行一次左旋。常见的泛型标识符 : E V K T。
2023-08-29 16:02:42
259
1
原创 Java基础——集合(单列集合:ArrayList、LinkedList)
① 使用空参构造器创建的集合,在底层创建一个默认长度为0的数组。 ② 添加第一个元素时,底层会创建一个新的长度为10的数组。public boolean remove(E e) : 把给定的对象在当前集合中删除。 ArrayList 底层是数组结构的,数组默认长度为10。public int size() : 返回集合中元素的个数(集合的长度)
2023-08-22 14:34:48
138
1
原创 Java基础——递归、异常
编译阶段就出现的错误 主要起到提醒作用,需要在运行之前, 给出解决方案。1 ~ 2 的和 2 += (1~1的和);1 ~ 4 的和 4 += (1~3的和); 例:封装为 Student 对象,键盘录入学生的姓名和年龄,要保证年龄的正确。 try { 可能会出现异常的代码 }
2023-08-18 14:37:39
181
1
原创 Java基础——常用API(时间类)
System.out.println("相差的千年数:" + ChronoUnit.MILLENNIA.between(birthDate, today));System.out.println("相差的十年数:" + ChronoUnit.DECADES.between(birthDate, today));System.out.println("相差的毫秒数:" + ChronoUnit.MILLIS.between(birthDate, today));
2023-08-17 10:37:31
184
1
原创 Java基础——常用API(Arrays工具类、冒泡排序、选择排序、二分查找、正则表达式)
第一轮 : arr[0]-arr[1] arr[1]-arr[2] arr[2]-arr[3] arr[3]-arr[4] 比较4次。第二轮 : arr[0]-arr[1] arr[1]-arr[2] arr[2]-arr[3] 比较3次。邮箱:"\\w+[@][\\w&&[^_]]+(\\.[a-z]{2,3})+"[a-z&&[^m-p]] a到z,除了m到p:([a-lq-z]减法)第三轮 : arr[0]-arr[1] arr[1]-arr[2] 比较2次。// -1: 避免索引越界。
2023-08-15 15:30:10
372
1
原创 Java基础——常用API(Object、Math、System、BigDecimal、包装类)
如果地址不相同, 就会返回false, 短路 || , 左边为false, 右边要继续执行.getClass()!&& : 左边为false, 右边不执行, 右边不执行, 记录着null值的a, 就不会调用equals方。① a == b : 如果地址相同, 就会返回为true, 这里使用的符号是短路 || , 左边为true, 右边。3.public static void arraycopy(数据源数组, 起始索引, 目的地数组, 起始索引, 拷贝个数)请将该字符串转换为整数并存入数组。
2023-08-14 08:02:36
147
原创 Java基础——面向对象高级(接口新特性、代码块、内部类、Lambda表达式、窗体、组件、事件)
useStringHandler(msg -> System.out.println("Lambda打印:" + msg));System.out.println("static...Student类的静态代码块");System.out.println("右移动业务代码");System.out.println("我的爸爸回家...");System.out.println("Student类的构造代码块");System.out.println("我的爸爸");
2023-08-09 17:17:15
113
原创 Java基础——面向对象高级(包、抽象类、接口、多态)
System.out.println("通过银行卡网银支付了:" + money + "元!System.out.println("通过支付平台支付了:" + money + "元!System.out.println("通过信用卡快捷支付:" + money + "元!System.out.println("请输入您的支付金额: ");通俗的理解:判断关键字左边的对象,是否是右边的类型,返回boolean类型结果。如果被转的引用类型变量,对应的实际类型和目标类型不是同一种类型,那么在转换的。
2023-07-28 15:29:42
147
1
原创 Java基础——面向对象高级(1)
是不能被继承,子类需要自己手动编写构造方法,子类在初始化之前已经完成父类的初始化(因为子类在初始化的过程中可能需要调用父类的成员),在所有的构造方法中,都默认隐藏了一句话 super();② static:被JVM调用不用创建对象(因为main方法是静态的,所以测试类中其他方法也需要静态的);员变量,若果被调用的变量和方法, 在子类中不存在, super.可以直接省略的。当类与类之间,存在相同 (共性) 的内容,并且产生了 is a 的关系,就可以考虑使用继承,来优化代码。
2023-07-25 17:05:42
69
原创 Java基础——集合基础
当创建ArrayList集合容器的时候,底层会存在一个长度为10个大小的空数组,当10个大小的空数组装满之后,如果又像集合中存入数据,这时系统会在开辟原数组1.5大小的新数组(15个大小),将原数组的数据复制到新数组中,再将添加的数据添加到新的数组,原来的数组将等待java垃圾回收机制处理。public E set(int index, E element) : 修改指定索引位置, 为对应的元素, 返回被覆盖掉的元素。// 输出结果[11.1,44.4,22.2,33.3]//输出结果33.3。
2023-07-17 07:46:02
52
1
原创 java基础——常用API(String、StringBuilder)
根据Sting的创建方式创建a1时直接去常量池找,发现没有,在常量池中创建“abc”字符串,a1指向常量池中的字符串,创建a2时,因为有new所以在堆空间中开辟一块String空间,然后去常量池中查找字符串,发现有字符串“abc”,将字符串拷贝一份存入创建的String空间,之后地址赋值给a2,这样a1指向的是常量池,a2指向的是字符空间,a1和a2指向不同,所以返回值是false.System.out.println("登录失败, 您还剩余" + (3 - i) + "次机会");
2023-07-10 13:44:36
228
1
原创 Java基础——面向对象
MovieMessage movie1= new MovieMessage(1,"东八区的先生们","2022",2.1,"中国大陆","喜 剧","夏睿","张翰 王晓晨");MovieMessage movie2= new MovieMessage(2,"上海堡垒","2019", 2.9, "中国大陆", "爱情 战争 科幻", "滕华涛", "鹿晗 舒淇");System.out.println("----------电影信息系统----------");
2023-06-21 22:49:10
89
原创 java基础——数组
若果我们直接打印数组名会发现数据名存储的是一个16进制的地址名,这个地址名就是数组在内存中的位置,根据这个位置再加上索引就可以找到数组中的元素。方法最开始是放在方法区,被调用后进入栈内存,在占内存创建数组的时候,就会在堆内存中开辟一块空间,用于存储数组的各个元素。数据类型 [][] 数组名 = new 数据类型 [][] {{ 元素 1, 元素 2},{ 元素 1, 元素 2}};数据类型 [][] 数组名 = {{ 元素 1, 元素 2}, { 元素 1, 元素 2}};
2023-06-15 09:50:07
49
1
原创 java运算符和方法(函数)
,当方法中含有return时,如果return后面有值,需要用对应类型的参数进行接收,如果方法是int型即public static int 方法名(int a,intb…看下面的代码,a是int,b是double类型,在计算的过程先将a转成了double进行计算,转换完赋值的时候又强转成int类型了,类似于int a = (int)(a+b);在同一个类中,定义了多个同名方法,但每个方法具有不同的参数类型或参数个数,这些同名的方法,就构成了重载关系。重载避免了大量的记忆方法名,简化了方法。
2023-06-04 21:22:35
115
1
原创 java基本数据类型、数据类型之间的相互转化
我们用两个byte类型的数据相加,再用byte的变量去接收,idea直接报红,原因是byte在计算的过程中会先将数据类型转换为int行进行计算,在接收时要用int类型,这个计算中也会含有隐式转换。我们可以将取值范围小的数据类型直接赋值给取值大的数据类型,否则会报错,在将a赋值给c的时候就发生了一次隐式转化,将int类型转换成了double类型。运算后的结果还是int, int类型结果给byte类型变量赋值, 大的给小的, 不能直接给, 编译错误.提升之后, 就是两个int在运算了, 运算的结果还是int.
2023-06-02 22:57:05
251
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人