Java基础
文章平均质量分 75
Java基础
萝卜阿咕咕
这个作者很懒,什么都没留下…
展开
-
Java序列化
一、什么是序列化?为什么要序列化?Java 序列化就是指将对象转换为字节序列的过程,而反序列化则是只将字节序列转换成目标对象的过程。我们都知道,在进行浏览器访问的时候,我们看到的文本、图片、音频、视频等都是通过二进制序列进行传输的,那么如果我们需要将Java对象进行传输的时候,是不是也应该先将对象进行序列化?答案是肯定的,我们需要先将Java对象进行序列化,然后通过网络,IO进行传输,当到达目的地之后,再进行反序列化获取到我们想要的对象,最后完成通信。二、实现序列化搭建项目①User文转载 2022-03-22 14:16:36 · 455 阅读 · 0 评论 -
session和cookies的区别
1、cookie数据存放在客户端上,session数据放在服务器上。2、cookie数据因为是存放在客户端上的,所以不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 考虑到安全应当使用session。3、session是有时效性的,一般是跟着tomcat,一般为30分钟;但是并不是每隔30分钟进行刷新一次,一般是有进行一次动作时,就自动将时间后移30分钟Cookie一般是没有过期时间,一般是客户端,浏览器上我们会进行的清除cookie的操作例如我们的登入页面,第一..原创 2022-02-15 17:40:58 · 716 阅读 · 0 评论 -
深浅克隆学习
在开始学习深克隆和浅克隆之前,我们先来看下面代码,有什么问题?class CloneTest { public static void main(String[] args) throws CloneNotSupportedException { // 等号赋值( 基本类型) int number = 6; int number2 = number; // 修改 number2 的值 number2 = 9;转载 2022-01-28 22:52:59 · 91 阅读 · 0 评论 -
Java工具类——包装类
我们都知道,JDK 其实给我们提供了很多很多 Java 开发者已经写好的现成的类,他们其实都可以理解成工具类,比如我们常见的集合类,日期相关的类,数学相关的类等等,有了这些工具类,你会发现它能很大程度的帮你节省时间,能很方便的实现你的需求。当然,没有这些包,你也能实现你的需求,但是你需要时间,今天我们主要是来学习一下包装类。一、包装类介绍1、为什么需要包装类?我们知道 Java 语言是一个面向对象的编程语言,但是 Java 中的基本数据类型却不是面向对象的,但是我们在实际使用中经常需要将基本..转载 2022-01-27 17:52:59 · 405 阅读 · 0 评论 -
JVM之垃圾回收器
堆中逻辑分代是「给内存做一些概念上的区分」,物理分代是真正的物理内存。「具体划分」新生代(young)和老年代(old/tenured)。「新生代」:刚new出来的那些对象:默认比例1「老年代」:垃圾回收了很多次都没有把它回收掉的老对象:默认比例3新生代又分为: 「eden」默认比例是8。新new出来的对象放在eden区。 「survivor」(s1) 默认比例是1。垃圾回收一次之后跑到这个区域,该区域存放的对象不同,采取的垃圾回收算法也不同。 「surviv.原创 2022-01-24 16:45:42 · 402 阅读 · 0 评论 -
String、StringBuffer和StringBuilder的异同
面试题:String、StringBuffer和StringBuilder的异同?相同点:底层都是通过char数组实现的不同点:String对象一旦创建,其值是不能修改的,如果要修改,会重新开辟内存空间来存储修改之后的对象;而StringBuffer和StringBuilder对象的值是可以被修改的;StringBuffer几乎所有的方法都使用synchronized实现了同步,线程比较安全,在多线程系统中可以保证数据同步,但是效率比较低;而StringBuilder 没有实现同步,线程不安全,在转载 2022-01-21 10:29:40 · 823 阅读 · 1 评论 -
线程安全集合类
List中:Vector:线程安全,是长度可变的数组ArrayList:线程不安全的,他的线程安全替代是VectorMap:HashMap:线程不安全的,他的线程安全的替代是HashTableHashTable:HashTable是线程安全的,它给几乎所有public方法都加上了synchronized关键字...原创 2022-01-20 15:55:55 · 2833 阅读 · 0 评论 -
for循环中的continue与break
二者区别:break:退出所有的循环continue:跳出当前的一次循环break和continue都是用来控制循环结构的,主要是停止循环。1.break有时候我们想在某种条件出现的时候终止循环而不是等到循环条件为false才终止。这是我们可以使用break来完成。break用于完全结束一个循环,跳出循环体执行循环后面的语句。2.continuecontinue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环。原创 2022-01-20 15:22:45 · 22194 阅读 · 0 评论 -
访问修饰符public,private,protected之间的差别
一般来说在编写代码的时候,属性基本都设置为private,是为了数据的安全性考虑。总结一下:public,protected,default,private封装等级逐渐增加四者对于本类当然是可以访问的了public则是所有类都可以访问protected则是对同包和子类都是公开的default则是默认时的修饰符,对同包公开,但是对于子类不行private则除了本类,其他都是隐藏的!,是可以直接引用...原创 2022-01-20 14:47:22 · 386 阅读 · 0 评论 -
map、list、set之间的差别
Collection是一个接口,与MAP接口是同级的 Collection代表的是单个元素对象的序列,(可以有序/无序,可重复/不可重复 等,具体依据具体的子接口Set,List,Queue等);Map代表的是“键值对”对象的集合(同样可以有序/无序 等依据具体实现)LIST: List继承于Collection 接口。List 是有序的 Collection,List 允许有重复元素,实现 List 接口的常用类有 LinkedList,ArrayList,V...原创 2022-01-19 16:45:21 · 13038 阅读 · 0 评论 -
JVM的内存结构
类加载系统类加载系统步骤:首先:load===》link(连接)===》initialize(初始化)load下:bootstrap class loader(引导类加载器) Extension Class Loader(扩展类加载器) Application Class Loader(应用程序类加载器)JVM内存区域也称为Java运行时数据区域。其中包括:程序计数器、虚拟机栈、本地方法栈、堆、静态方法区、静态常量池等。...原创 2022-01-18 18:19:53 · 940 阅读 · 0 评论 -
JAVA中的switch
switch case 语句有如下规则:switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开 始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面 量。switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字 面常量。当变量的值与 case 语句的值相等时,那么 case 语句之后原创 2022-01-17 11:38:20 · 73724 阅读 · 1 评论 -
接口与抽象类
一、抽象类在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为:abstract void fun();抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。抽象方法需要有abstract修饰,并且也无方法体;抽象类:一个类中包含有抽象方法的话,那么这个类也是属于抽象类:抽象类是需要原创 2022-01-14 15:51:24 · 48 阅读 · 0 评论 -
JVM相关内容
1 我们开发人员编写的Java代码是怎么让电脑认识的首先先了解电脑是二进制的系统,他只认识 01010101比如我们经常要编写 HelloWord.java 电脑是怎么认识运行的HelloWord.java是我们程序员编写的,我们人可以认识,但是电脑不认识Java文件编译的过程因此就需要编译:程序员编写的.java文件由javac编译成字节码文件.class:(为什么编译成class文件,因为JVM只认识.class文件)在由JVM编译成电脑认识的文件 (对于电脑系统来说 文件代表一转载 2022-01-12 17:28:53 · 63 阅读 · 0 评论 -
多线程实现
实现线程的两种方式1、继承方式实现: 继承Thread类,重写run方法; 在执行时,不能直接执行调用run方法,直接调用run的方法时,不会生成新线程; 而如果要开启新线程,而是需要调用star方法,才会生成新的线程启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是一个native方法,它将启动一个新线程,并执行run()方法。这种方式实现多线程很简单,步骤:继承Thread类1、定义一个类MyThr...原创 2021-12-28 17:00:18 · 309 阅读 · 0 评论 -
JAVA中的List
1、booleanadd(Ee)添加元素到Collection集合中。2、booleanaddAll(Collection<? extendsE>c)将指定c中的所有元素都添加到此Collection集合中。3、voidclear()移除此collection集合中的所有元素4、booleancontains(Objecto)检查Collection集合中是否包含o对象,如果包含则返回true,否则返回false。...原创 2021-11-02 18:10:05 · 383 阅读 · 0 评论 -
JAVA中的异常
什么是异常?程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。、异常发生的原因有很多,通常包含以下几大类: 用户输入了非法数据。 要打开的文件不存在。 网络通信时连接中断,或者 JVM 内存溢出。 三种类型的异常: 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。 运行时异常:运行时异常是可能被程序员..原创 2021-10-11 10:55:38 · 182 阅读 · 0 评论 -
TomCat的安装及使用
dddd原创 2021-10-09 17:45:42 · 60 阅读 · 0 评论 -
JAVA中的封装
将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的访问和操作,不但方便还起到了保护作用在类中将不愿意给展示给别人或者需要被保护起来的方法及属性,通过private进行私有化,在类中,通过一个公开的方法进行调用的过程称为封装 通过定义私有化的属性时,在同一个类下,无需通过getter()或setter()方法获取,直接就可以通过属性名获得对应的属性值,this.属性(操作当前对象的属性);this.方法(调用当前对象的方法)任何要访问类中私...原创 2021-09-09 10:48:57 · 70 阅读 · 0 评论 -
初级java
三大特性:封装继承多态以我对他的理解是这样的,封装的话,我们可以从他的字面意思开始理解,封的话,可以理解为一个密闭的空间;装的话,可以理解为打包起来;例如说java中的一个个类,我们也可以看成是一种封装,他封装了方法与属性,这也是一种封装的体现;方法的话,是一些代码片段的封装;java中的工程我们也可以看成一个封装,一个个类包成一个整体;这些都可以看成是封装的体现;封装的话,就是将一些不愿意暴露给别人的一些细节给包起来;通过权限定义符进行修饰,控制他是否可见,因为有些外部不关心内部怎么实现,只...原创 2021-09-22 17:32:58 · 123 阅读 · 0 评论 -
String与StringBuilder
String在java中string是引用类型,本事是一个类,在java中,可以直接用“...”表示字符串,来进行创建对象。可以直接使用s1.方法,调用的是string下的各种方法String s1 = "Hello!";例如: Scanner sc = new Scanner();这两个可以看成用法是一样的,都是new一个新对象,只是string的用法相对比较特殊一些toString方法:·字符串本身就是字符串,返回本身:直接输出s1这个字符串;以下两种写法都是可以输出这个字符..原创 2021-09-11 00:03:07 · 566 阅读 · 0 评论 -
JAVA基础知识汇总
一、方法的调用在同一个类下面:1、非静态方法:非静态方法就是没有 static 修饰的方法,对于非静态方法的调用,是通过对 象来调用的,表现形式如下对象名.方法()首先要先new一个对象,然后通过对象去进行调用2、调用静态方法静态方法就是用 static 修饰的方法,静态方法的调用是通过类名来调用的, 表现形式如下:类名.方法()public class CmjUtil { public int add(int a,int b) { System.out.pr原创 2021-09-02 10:00:15 · 543 阅读 · 0 评论 -
日期类内容
1、获取当前时间:Java中获取当前日期和时间很简单,使用 Date 对象的 toString() 方法来打印当前日期和时间Date a=new Date(); System.out.println(a.toString());2、我们需要先将java.util.data的包先引进来然后通过Date dNow = new Date( );package com.cmj;import java.text.SimpleDateFormat;import jav...原创 2021-09-23 18:03:06 · 72 阅读 · 0 评论 -
JAVA中的Map
接口概述我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。Map中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。Collection中的集合称为单列集合,Map中的集合称为双列集合。需要注意的是,Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。,原创 2021-11-03 16:11:46 · 30669 阅读 · 0 评论 -
JAVA中的多态
概述: 多态是对象的多种形态;多态中成员访问特点成员变量:编译看左边,执行看左边成员方法:编译看左边,执行看右边为什么不一样,因为成员方法有重写,而成员变量没有例如,Animal an=new Cat();当输出成员变量时,输出的是左边Animal中的成员变量;如果是调用的方法时,则看右边的Cat中的方法...原创 2021-09-18 23:28:56 · 74 阅读 · 0 评论 -
JAVA中的ArrayList
ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。ArrayList 继承了 AbstractList ,并实现了 List 接口ArrayList 类位于 java.util 包中,使用前需要引包,这个一般eclipse直接帮我做了这块的内容import java.util.ArrayList;public class ArryListTest { public static void main(String[] .原创 2021-11-05 16:04:52 · 862 阅读 · 0 评论 -
JAVA中的继承
Java使用extends关键字来实现继承:例如person类class Person { private String name; private int age; public String getName() {...} public void setName(String name) {...} public int getAge() {...} public void setAge(int age) {...}}student.原创 2021-09-15 11:14:57 · 91 阅读 · 0 评论 -
JAVA之旅
一、Scanner用法 首先需要先import这个类 在Scanner中new一个新的对象 调用这个方法 import java.util.Scanner; public class Fish { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("qingshuru"); int num = sc.nextInt()原创 2021-09-02 09:58:55 · 95 阅读 · 0 评论