对String值不可变的理解以及String类型的引用传递问题

今天复习java时,突然注意到了一句以前没有注意过的一句话,String 是final修饰的,其值是不可变的。当时看的一脸懵逼,String str = "abc"; str = "abcde"这两行代码没有任何的错误的。上网百度了许久,还是整理下来防止以后

Java传参-基本数据类型和引用数据类型作为参数的区别(值传递)

String类型比较特殊 java中的方法可以传递参数,参数的传递方法就是值传递。参数有形参和实参,定义方法时写的参数叫形参,真正调用方法时,传递的参数叫实参。调用方法时,会把实参传递给形参,方法内部其实是在使用形参。所谓

数组的初始化之---静态初始化和动态初始化

java中创建数组,数组是以对象的形式出现的,任务:用不同方法定义一个长度为5的二维数组。方法一:{//动态初始化int[] arr1 = new int[5]; //声明、创建arr1[0] = 0;//初始化arr1[0] = 1;arr1[0] = 2;arr1[0] = 3;arr1[0] =

计算机原码、反码、补码详解

注:之前查找了关于原码、反码、补码的相关资料,张子秋的博客:原码, 反码, 补码 详解讲的比较透彻。为了方便,现将其转载至此,版权归原作者所有。更加深入的分析,可以参考作者的原文。本文大部分内容来源于此。后面有小部分

两个byte类型数据相加为什么会报错

byte b=4; byte b1=3; byte b2=7; b=b1+b2; //这样是计算不出b,是错误的 b=b1+7; //这样也是计算不出b byte b=3+7; //怎么这样又可以计算? byte a=1; a=a*2; System.out.println(a);在java中,类型为

自动类型转换

整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。转换从低级到高级。低 ------------------------------------> 高byte,short,char—> int —> long&mdash

Java标识符命名规范

  1>标识符由大小写字母, 下划线, 数字, $符号组成.  2>开头可以是大小写字母, 下划线, 和$符号.(数字不能开头)  3>标识符长度没有限制  4>标识符不能是关键子和保留字  标识符的命名最好能反映出其作用,j

HashCode的作用原理和实例解析

HashCode定义 (1)HashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,HashCode是用来在散列存储结构中确定对象的存储地址的;(2)如果两个对象相同, equals方法一定返回true,并且这两个对象的HashCode一定相同;(3)如果对

java之从字符串比较到==和equals方法区别

我们先看代码 String str1 = new String("hello"); String str2 = "hello"; System.out.println("str1==str2: " + (str1==str2)); \\1 System.out.println("str1.equals(str2): " + str1.equals(str2)); \\2

Java 泛型

Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。 泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。假定我们有这样

对象的声明与实例化

Java 在定义类时,只是通知编译器需要准备多大的内存空间,并没有为它分配内存空间。只有用类创建了对象后,才会真正占用内存空间。1. 声明对象 对象的声明和基本类型的数据声明在形式上是一样的:类名 对象名;对象名也是用户

多线程有什么用?

作者:pansz 链接:https://www.zhihu.com/question/19901763/answer/13299543 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 这么解释问题吧:1。单进程单线程:一个人在一个桌子上吃菜

Java内部类的一些总结

作为刚入门Java的小白,这两天看到内部类,这里做一个总结,若有错误,欢迎指正~内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。内部类分为: 成员内部类、局部内部类、静态嵌套类、匿名内部类 。1.成员

JAVA装饰者模式(从现实生活角度理解代码原理)

JAVA装饰者模式(从现实生活角度理解代码原理)

装饰者模式可以动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。该模式的适用环境为:(1)在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。(2)处理那些可以撤消的

Java中为什么有的方法必须抛出异常,有的不用

在写一个代码时候,出现Unhandled exception type IOException的编译错误,即未处理的异常类型IOException,于是上网搜索,是因为没有没有抛出异常所致。首先,Java异常有Runtime(运行时异常)和Checked(编译时异常),其中,所有Runtime

java中抽象类和接口之间的区别和关系

首先抽象类归根结底还是属于类,对于抽象方法,是只能存在于抽象类中的,我们无法再一个非抽象的类中声明一个抽象方法,其次抽象方法只需要声明,并不需要事先。当我们要写一个抽象类的时候只需要在类的前面声明为abstract即可

什么是多态???多态的概念及作用(好处)

什么是多态???多态的概念及作用(好处)

概念:多态(Polymorphism)按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。 引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为一个或更多的

Java向下转型的意义

一开始学习 Java 时不重视向下转型。一直搞不清楚向下转型的意义和用途,不清楚其实就是不会,那开发的过程肯定也想不到用向下转型。其实向上转型和向下转型都是很重要的,可能我们平时见向上转型多一点,向上转型也比较好理

java:对象的转型

java:对象的转型

面向对象编程有三个特征,即封装、继承和多态,学习多态必须了解向上转型和向下转型。一、向上转型:将子类对象赋值给父类的引用动物 a=new 狗();//这就为向上转型向上转型都会成功,是安全的。 就像说狗是动物没问题。 语法:a是

Java 重写(Override)与重载(Overload)

Java 重写(Override)与重载(Overload)

重写(Override)重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的

Java 继承

Java 继承

继承的概念继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。生活中

Java 自定义方法

类1、JAVA中一般命名类要求pascal命名法,就是有几个单词就首字母都大写 2、类下可以直接写的内容是属性及方法的声明 3、一个原则如果定义了类,一般不能直接调用,而是通过实例化类的对象出来,让他 工作 4、类相当于一

Java void关键字

概述void是Java中的关键字,日常开发中经常遇到,Java main方法的定义中就有void的身影,如下: public static void main(String[] args) { } 1 2 3学过Java的人都知道void的意思是空,如果你去问老手,老手会告诉你说:“voi

谈谈我对php中面向对象的理解

今天来和大家介绍一下PHP的面向对象。说到面向对象,我不得不提一下面向过程,因为本人在初学时,常常分不清楚面向对象和面向过程,面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持。如何使用OOP的思想

thinkphp命名规范

命名规范ThinkPHP5遵循PSR-2命名规范和PSR-4自动加载规范,并且注意如下规范:目录和文件 目录使用小写+下划线; 类库、函数文件统一以.php为后缀; 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致; 类