基础部分

Java的String是不可变对象,比如:

public class Foo {public static void main(String arg[]) {String s = "hello world";String s1 = s + " !"; // 追加字符String s2 = s.s.substring(0, 5) + " foo";}
}

s1s2是会共享原来s的字符的。

如果经常变化字符串,可以使用StringBuilder,可以与String互相转化:

public class Sample {public static void main(String[] arg) {StringBuilder sb = new StringBuilder();sb.append("124");String s = sb.toString();}
}

Java的数组,一维数组来说,声明后是null,需要具体进行实例化。而高维数组,本质上都是可变数组:

public class Sample {public static void main(String[] arg) {int[] a = {1, 2, 3};int[] b = new int[10];int[][] c = new int[10][6];int[][] d = new int[3][];for (int i = 0; i < 3; i++) {d[i] = new int[i + 1];}// 一般使用for range进行迭代for (int[] row: d) {for (int v: row) {System.out.println(v);}}}
}

Arrays为数组提供了排序、深拷贝等的操作,具体可以参考手册。

面向对象基础

对于Java来说,一切皆对象,对于定义的对象,如果仅仅是声明,那么它相当于C++中的指针,使用=赋值的时候,也是地址而已:

public class Sample {public static void main(String[] arg) {Data data; // C++等价为Data* datadata = new Data();Data data1 = data; // C++ => Data* data1 = data}
}

所有的对象都是分配在堆上的,因此所谓的赋值只是传递指针而已,除非使用深拷贝。

可以这么理解,Java中全部都是传递值,没有传递引用的说法。所有的对象都是分配在堆上的,赋值的时候,都是隐式指针的形式

Java自定义的对象只有构造函数,没有析构函数。Java的构造函数支持重载,这点类比C++。

Java的final关键字可以限制类中成员变量是不可变的,类比C++的const

public class Sample {private final double PI = 3.1415926;
}

Java的static关键字表示静态成员,这点直接类比C++即可。当然,调用的时候,还是使用.,代码实例:

public class Sample {public static int getNextId() {return nextId;}private static int nextId = 0;
}/**  .. some operation
**/
public class SampleMain {public static void main(String[] arg) {System.out.println(Sample.getNextId());  // 这里调用静态方法}
}

Java的类,需要声明package为同级别的目录,否则类就会被放置到一个默认的default包中。类和成员的可见性:

  • public:包内外都可见
  • private:类内部可见
  • 不声明:同一个包内可见

Java基础总结--1相关推荐

  1. Java基础入门语法和安装

    1. Java概述 1.1 Java语言背景介绍(了解) 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java语言是美国Sun公司(Stanford Un ...

  2. Java笔记整理-02.Java基础语法

    1,标识符 由英文字母.数字._(下划线)和$组成,长度不限.其中英文字母包含大写字母(A-Z)和小写字母(a-z),数字包含0到9. 标识符的第一个字符不能是数字(即标识符不能以数字开头). 标识符 ...

  3. java基础(十三)-----详解内部类——Java高级开发必须懂的

    java基础(十三)-----详解内部类--Java高级开发必须懂的 目录 为什么要使用内部类 内部类基础 静态内部类 成员内部类 成员内部类的对象创建 继承成员内部类 局部内部类 推荐博客 匿名内部 ...

  4. Java基础概念性的知识总结

    属于个人的所学的知识总结,不是全面的 1.JDK.JRE和JVM三者的区别 01.JDK:(Java Development ToolKit)Java开发工具包,是整个Java的核心.包括了Java的 ...

  5. 我的面试标准:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架!...

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:hsm_computer www.cnblogs.com/J ...

  6. 叮!您收到一份超值Java基础入门资料!

    摘要:Java语言有什么特点?如何最大效率的学习?深浅拷贝到底有何区别?阿里巴巴高级开发工程师为大家带来Java系统解读,带你掌握Java技术要领,突破重点难点,入门面向对象编程,以详细示例带领大家J ...

  7. java重要基础知识点_必看 | 新人必看的Java基础知识点大梳理

    原标题:必看 | 新人必看的Java基础知识点大梳理 各位正在认真苦学Java的准大神,在这烈日炎炎的夏季里,老九君准备给大家带来一个超级大的"冰镇西瓜,"给大家清凉一下,压压惊. ...

  8. Java基础-Date类常用方法介绍

    Java基础-Date类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.毫秒值概念 我们在查阅Date类的API文档时,会发现这样的一句话:"The cl ...

  9. [Spring 深度解析]第1章 Java基础

    第1章 ◄Java基础► 在学习Spring之前我们需要对Java基础语法有一定的了解,Java中最重要的两个知识点是注解和反射.注解和反射在Spring框架中应用的最广泛.掌握注解和反射,有助于后面 ...

  10. 清华学长免费分享Java基础核心知识大总结(1)

    自学Java,如果觉得看<Java编程思想>或者<Core Java>等之类的"圣经"觉得内容太多,一下子吃不透的话,不妨看看这本<Java基础核心总 ...

最新文章

  1. MySQL学习(二)复制
  2. struts2异常处理,global-results定义全局结果处理
  3. 动态连接库的两种方式
  4. c#中struct和class的区别
  5. Mr.J-- jQuery学习笔记(三)--静态方法详解
  6. JConsole工具使用
  7. 开课吧Java课堂:多线程如何同步?消息如何传递?
  8. 学习python内一般函数知识
  9. ajaxfileupload struts2 null_去掉烦人的 “ ! = null (判空语句)
  10. python shell清屏指令_python shell怎么清屏
  11. 代码生成器 Freemaker
  12. 2.3 OverFeat
  13. sql数据库去重语法_SQL如何去重?
  14. XJOI_3541_开根号
  15. 最常用计算机文件后缀名,文件扩展名/后缀名是什么 常用的文件扩展名大全
  16. 电脑是怎么把代码转换成可执行程序的?
  17. 深圳湾将现“小米魔方”!ennead为小米打造深圳国际总部;乐高集团扩大嘉兴工厂产能 | 美通社头条...
  18. Swift 第三方 播放器AliyunPlayer,音乐(阿里云播放器)(源码)
  19. FITC/cy3/cy5/cy7-PEG-Vitamin D
  20. HTML小案例: 填写简历信息页面布局

热门文章

  1. ue4 如何获取端口号_尝试在UE4.22中实现罪恶装备Xrd的卡通渲染
  2. 数位板驱动压力测试_数位屏应如何选择?
  3. 力扣每日一题 2021.10.23
  4. httplistener java_Java监听器Listener使用详解
  5. 查看 Linux 中文件打开情况
  6. 终端操作MySQL数据库
  7. 面试—每日一题(5)
  8. extjs 不显示 但是不报错
  9. ng机器学习视频笔记(三) ——线性回归的多变量、特征缩放、标准方程法
  10. C# 使用Process调用外部程序中所遇到的参数问题