![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
木十一的木马
这个作者很懒,什么都没留下…
展开
-
Java值传递的问题
class Test{ String name; int age; public Test(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return "Test{" + "name='" + name + '\'' +原创 2022-03-09 23:17:03 · 255 阅读 · 0 评论 -
题:==比较题
==是做一个判断的:对于基本数据类型而言是判断两个基本数据的值(value)是否相等;对于引用数据类型而言是判断两个引用数据的地址(address)是否相等。题解:(1)int a == Integer a1:int类型的a 和 Integer类型的a1使用 == 比较的话,Integer 的a1会自动拆箱,所以a 和 a1 比较的值。为true。(2)int a == new Integer(a1)a是基本数据类型int类型,那么== 右侧的就会自动拆箱,比较的是二者的值,所以为true。(.原创 2022-01-17 16:57:22 · 70 阅读 · 0 评论 -
为什么Byte类型的运算结果要用int类型来接收
今天写程序的时候发现byte类型的数值进行运算无法用byte接收,必须是int类型的。为什么Byte类型的运算结果要用int类型来接收?我们给他编译一把:javac Add.javajavap -v Add.class就是因为加法运算导致的,加法运算的指令是iadd,会使运算结果变为int类型。...原创 2022-01-17 11:28:19 · 512 阅读 · 0 评论 -
Java基础--多态
一、概述:什么是多态?在 java 程序设计中,对象变量是多态的,多态是同一个行为具有多个不同表现形式或形态的能力。也是 OOP (Object Oriented Programming)中的一个重要特性,主要是用来实现动态联编的,换句话说,就是程序的最终状态只由在执行过程中才被决定而非在编译期间就决定了。这对于大型系统来说能提高系统的灵活性和扩展性。多态是同一个行为具有多个不同表现形式或形态的能力。二、多态实现的必要条件使用手机扫描二维码支付时,二维码并不知道客户是通过何种方式进行支付,只有原创 2021-12-13 10:28:11 · 688 阅读 · 0 评论 -
Java基础---继承
继承的基本作用是:代码的复用。默认所有的类都继承与Object类一、概念:继承是java面向对象编程的基石,继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。public class Person { public void run() { System.out.println("任何人都可以跑。。。"); }}class Student extends Person{ private void e原创 2021-12-11 11:36:39 · 432 阅读 · 0 评论 -
StringBuffer和StringBuilder总结
1.什么是字符串常量池?JVM为了减少字符串对象的重复创建,其维护了一块特殊的内存,这段内存被称为字符串常量池(存储在方法区中)。当代码中出现字符串时,JVM首先会对其进行检查。如果字符串常量池中存在相同内容的字符串对象,如果有,则不再创建,直接返回这个对象的地址返回。如果字符串常量池中不存在相同内容的字符串对象,则创建一个新的字符串对象并放入常量池,并返回新创建的字符串的引用地址。new String(“str”)时,首先也会去检查常量池是否存在“str”(存在则不创建、不存在则在常量池先创建一个原创 2021-11-24 12:40:41 · 391 阅读 · 0 评论 -
Java基础:值传递
1.Java中等于号左侧叫句柄,等于号右侧叫值;句柄 = 值的地址(就是堆中的地址)2.值传递(堆地址)和引用传递(传递栈的地址):值传递:在方法被调用时,实参通过把他的内容副本传入方法内部,此时形参接收的内容是实参的一个拷贝,因此在方法内对实参的任何操作,都仅仅是对这个内容的副本进行操作,不影响原初始值的内容。值传递传递的是一个真实内容的副本,对副本的操作不影响原内容,也就是形参怎么变化,不影响实参对应的内容。引用传递:"引用”也就是指向真实内容的地址值。在方法调用时,实参的地址通过方法调用被传递给原创 2021-11-18 20:33:01 · 539 阅读 · 0 评论 -
static关键字
1.static 关键字:方便在没有创建对象的情况下对方法和变量进行调用,减少堆内存的使用和损耗。2.static修饰的(1)修饰变量:static修饰的变量属于类变量,被所有对象共享;(2)修饰方法:static修饰的方法叫做类方法/静态方法;main方法属于静态方法;静态方法可以调用静态方法; 静态方法不能调用非静态方法;非静态方法可以调用静态方法; 非静态方法可以调用非静态方法;(3)static代码块:static代码块在main方法之前执行,以便优化程序,static代码原创 2021-11-18 18:46:27 · 382 阅读 · 0 评论 -
Session
1.Session是服务器提供的一个会话对象,创建之后这个Session对象存储在服务器当中。但Session的使用需要和我们的浏览器产生关联。这个关联和cookie有关,其中每一个session对象都会有一个对应的sessionid,这个sessionid被存储在cookie当中。2.Session的设置:HttpSession session = request.getSession();session.setAttribute(“id”, arrayList.get(0)[0]);3.Se原创 2021-10-25 11:44:02 · 126 阅读 · 0 评论 -
Cookie
1.会话:当用户访问web应用时,在许多情况下,web服务器必须能够跟踪用户的状态。比如许多用户在购物网站上购物,Web服务器为每个用户配置了虚拟的购物车。当某个用户请求将一件商品放入购物车时,web服务器必须根据发出请求的用户身份,找到客户的购物车,将商品放入其中。这里我们就需要想办法去保存用户的信息,于是我们引入了会话。在计算机领域当中,是存在会话的,计算机和服务器之间进行一次通话称为会话。当打开浏览器访问一个地址成功后就意味着开启了一个新的会话。会话是一个客户与服务器之间的不中断的请求响应序列会原创 2021-10-24 12:39:18 · 94 阅读 · 0 评论 -
反射的理解和用法
1.什么是反射?(1)Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得到类对象之后,再通过类对象进行反编译,从而获取对象的各种信息。(2)Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可能需要动态加载某些类,这些类因为之前用不到,所以没有被加载到JVM。通过反射,可以在运行时动态地创建对象并调用其属性,不需要提前在编译期知道运行的对象是谁。2.我们明明可以通过new 一个对象来获取类信息,那么我们为什原创 2021-10-22 19:54:59 · 193 阅读 · 0 评论 -
栈、队列、双向队列
1.stack(栈)方法:增删:O(1); 查:O(n)push( num) //入栈pop() //栈顶元素出栈peek() //获取栈顶元素 注意 只获取,不弹出empty() //判定栈是否为空search(num) //判端元素num是否在栈中,如果在返回值是:栈顶到该元素首次出现的位置的距离2.Queue(队列)的方法:增删:O(1); 查:O(n)Queue在Java里的实现是一个接口add()、offer原创 2021-10-10 23:44:42 · 86 阅读 · 0 评论 -
128陷阱底层原因
自动装箱:我们在定义Integer类型的变量是用的是Integer num = 100;实际上是Integer num = Integer.valueOf(100);因为我们习欢第一种写法,于是Java开发者就创造了这种操作,这就是自动装箱。我们从源代码中看一下底层的。i从-128到127,[i+(-IntegerCache.low)]是个索引,返回的是cache数组索引从0到255的元素值cache数组里放的是从-128到127,共256个元素;如果值是在范围内那么返回其值,如果没在原创 2021-10-04 23:36:17 · 84 阅读 · 0 评论 -
接口和抽象类
Java不允许多继承抽象的含义:将相同且不确定的东西提取出来抽象类的特点:1.由abstract修饰的类是抽象类2.abstract修饰的方法叫做抽象方法,抽象方法必须在子类中重写,并实现3.只有抽象类当中才能有抽象方法,普通类中不能有抽象方法;抽象类中可以有普通方法4.之所以使用使用抽象类是因为能节省内存空间,抽象类不能被实例化(所谓类的实例化就是new空间)5.抽象类可以使用多态6.final和abstract不能同时使用(因为final修饰的方法不能被重写 );private和ab原创 2021-10-04 22:03:57 · 62 阅读 · 0 评论 -
Java运算符
**1.基本运算符**在java当中,使用运算符+、-、*、/ 表示加减乘除,当参与 / 运算的两个操作数都是整数的时候,表示整数除法;否则表示浮点数。整数的求余操作用 % 表示。System.out.println(5 / 2); // 2System.out.println(8/0); // by zero 错误System.out.println(浮点数/0); // INFINITYSystem.out.println(5%2); // 1System.out.print原创 2021-10-01 22:23:45 · 188 阅读 · 0 评论 -
二维数组及基本操作
1.二维数组的定义(三种方式)第一个中括号表示行,第二个中括号表示列:int[][] arr = new int[][]{{}, {}, {},...};int[][] brr = new int[size1][size2];int[][] crr = new int[size][];2.访问二维数组中的元素:int[][] arr = new int[][]{{1,0,1}, {1,1,1}, {2,2,2}};//第一行第二列的元素System.out.println(arr[0][1]原创 2021-10-01 22:04:46 · 1289 阅读 · 0 评论