面试总结

1, 值传递和引用传递

在java中是传递的引用,在传递参数到方法的时候,都会拷贝一个引用的副本,在方法内部,如果在方法内部改变是副本的内存指向, 那原来的变量是不会发生改变的,如果改变的是指向地址的值,那原对象就会发生改变。

public class StringTest {

 public static void main(String[] args) {
  String str = "java";
  nochange(str, str);
  change(str, str);
 }
 
 public static void nochange(String str1,String str2) {
  System.out.println("nochange--->>"+(str1 == str2));
 }
 

 public static void change(String str1,String str2) {
  str1 = str1 + "";
  System.out.println("change--->>"+(str1 == str2));
 }
}


结果:

nochange--->>true
change--->>false



网上引用:

很多人说,java中的String虽然是对象,但是具有值类型的特征。他是值传递,传递的值。
我认为这这种说法完全是错误的。
String和普通对象毫无区别,和其他对象一样,传递的是引用,而不是值。
一段String的运用代码:

 String a = "123";
public void change(String a){
    a = "234";
}

很多人会说,a的值没有变,是因为String是值传递,问题是,就算对于一个普通对象,这样的用法,该对象的值也是不会改变的!这是一个大大的误区。java中根本没有真正的引用传递,不想C#中有ref关键字!
比如:

 Person p = new Person("张三");
public void change(Person p){
    p = new Person("李四");
}

上面对于String的使用和这个自定义Person类的使用上,根本没有本质上的区别。同样,外面的p变量依然是”张三”,不会是“李四。”

同样的代码,放入C#中,加上ref关键字:

 Person p = new Person("张三");
public void Change(ref Person p){
    p = new Person("李四");
}

结果是,p变为了“张三”!

所以说,个人认为java中的String并没有什么特殊性,和其他类一样,同样保存的对象的引用,传递的引用。唯一的特殊性,就是可以直接用“”双引号的方式创建字符串对象。



2, android中多线程,  多进程之间的通信?






**描述:“适用于JDK8的环境”** 本文将深入探讨Neo4j社区版3.5.6版本,这是一个基于图数据库的强大工具,特别适用于知识图谱构建和可视化。由于其运行需求,必须在Java Development Kit(JDK)8的环境下进行安装和操作。 **一、Neo4j概述** Neo4j是一款开源的图形数据库,它以节点、关系和属性的形式存储数据,这使得处理复杂网络结构的数据变得更为直观和高效。Neo4j社区版是免费的,适合开发和学习用途,而企业版则提供了更多的高级功能和服务。 **二、JDK8要求** 为了运行Neo4j 3.5.6,你需要在你的计算机上安装JDK8。JDK是Java开发工具包,包含了运行Java应用程序所需的Java虚拟机(JVM)以及一系列开发工具。确保安装的是与Neo4j版本兼容的JDK版本至关重要,因为不兼容的JDK可能会导致运行错误或性能问题。 **三、安装和配置** 1. **下载与解压**: 从官方渠道下载"neo4j-community-3.5.6.zip"压缩文件,并将其解压到你选择的目录。 2. **环境变量配置**: 配置系统环境变量,将Neo4j的bin目录添加到PATH环境变量中,以便于命令行启动和管理数据库。 3. **修改配置文件**: Neo4j的配置主要通过`conf/neo4j.conf`文件进行,如需更改默认设置,如内存分配、端口设置等,应在此文件中进行修改。 4. **启动和停止**: 使用`neo4j console`命令启动服务,`neo4j stop`命令关闭服务。 **四、知识图谱与可视化** Neo4j因其强大的图数据模型,成为构建知识图谱的理想选择。你可以使用Cypher查询语言来操作和查询图数据,它的语法简洁且直观,易于学习。 1. **Cypher语言**: Cypher是一种声明式、图形化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值