1.goto和const

目前java中,和C/C++有点区别,就是暂未用到goto const关键字.示例如下:

public class Hello{

                  public static void main(String args[]){
const int i =100;
goto FINAL; FINAL: System.out.println("final"); } }

编译报错:

2.数据划分

  • java中分为两大类型:基本数据类型,引用数据类型
  • 对于基本数据类型,在方法体内对参数进行重新赋值,不会改变原有变量的值
  • 对于引用数据类型,在方法体内对参数进行重新赋值,可以改变原有变量的值,但是如果从新new分配的话,并不会改变原有变量所持有的引用
  • 在方法中对于对象的属性值进行修改,则可以改变原有变量所指向对象的属性值

3.基本数据类型

  • 在java中,基本数据类型的变量都存在
  • 在java中,布尔型是为boolean,和C++有所不同,而不是bool.
  • 在java中,char是2字节的,主要是java内部使用unicode(utf-16)的,所以java支持中文变量名.
  • 在java中,新增了一个byte数据类型.位于-128~127.如下图所示.
  • 在java中,一般对于小数都使用double.

注意:在java中,对于boolean赋值非true/false时,是会报错的,和C++是有区别的,示例如下:

  boolean b=5;
  System.out.println("5:"+b);

报错:

4.引用数据类型

可以引用数组,类,接口等,和基本数据不同,这个需要通过new由用户来开辟空间的.如果不赋值则为null

比如java中的String,就是个类,如果想用到这个类,则需要引用类.

java中的String,可以通过+进行字符串连接(而QT中的QString是不能的)

示例:

String  str=new String("123");               //通过new String在堆空间生成一个对象,然后使str引用这个对象
str = str +"45"+6+7.1;
System.out.println(str); //打印:1234567.1

4.1 String注意事项

在java中,String是字符串常量,永远都是指向的常量,比如:

String  str=new String("123");
str = str +"45"+6+7.1; //实际上相当于:string str =new String("1234567.1");

为什么说String是字符串常量?可以看看下面的String引用传递示例:

public class Test{

                  public static void main(String args[]){
String str1=new String("123");
String str2=str1; //引用str1是str2的别名
str1 +="456"; //因为String是字符串常量,所以需要重新使str1 =new String("123456");
//而str2还是指向之前的"123"处 System.out.println("str1:"+str1);
System.out.println("str2:"+str2);
}
}

运行打印:

如上图所示,可以看到修改str1后,str2的值并没有跟着改变.

总结

所以,String在更改内容时,会不断的创建并回收之前的对象,速度是很慢的,适用于少数字符串操作

4.2 StringBuffer

StringBuffer和String类似, 都是存储字符串,但是StringBuffer存储的则是字符串变量

为什么说StringBuffer是字符串变量?可以看看下面的StringBuffer引用传递示例:

public class Test{
public static void main(String args[]){ StringBuffer a = new StringBuffer("123");
StringBuffer b = a; //引用b是a的别名 b.append("456");
System.out.println("a:"+a);
System.out.println("b:"+b);
}
}

运行打印:

如上图所示,可以看到修改b后,a的值也跟着改变.

总结

如果要操作少量的数据用 String;

多线程操作字符串缓冲区下操作大量数据 StringBuffer;

单线程操作字符串缓冲区下操作大量数据 StringBuilder。

下章学习:3.JAVA-方法重载,类的封装,构造/析构方法

2.JAVA-基础语法以及String的介绍的更多相关文章

  1. 043 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 05 do-while循环介绍及应用

    043 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 05 do-while循环介绍及应用 本文知识点:do-while循环介绍及应用 do-while循 ...

  2. 011 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 05 变量的三个元素的详细介绍之三—— 变量值——即Java中的“字面值”

    011 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 05 变量的三个元素的详细介绍之三-- 变量值--即Java中的"字面值" 变量值可以是 ...

  3. 010 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 04 变量的三个元素的详细介绍之二——变量类型——即Java中的数据类型

    010 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 04 变量的三个元素的详细介绍之二--变量类型--即Java中的数据类型 Java中变量的三要素 变量名 变 ...

  4. Java基础笔记 – Annotation注解的介绍和使用 自定义注解

    Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 |  被围观 25,969 views+ 1.Anno ...

  5. Java基础语法(上篇)

                     Java基础语法(上篇) 知识概要: (1)关键字的表示与规范       (2)标示符              (3)注释                (4 ...

  6. 第8天 Java基础语法

    第8天 Java基础语法 今日内容介绍 Eclipse开发工具 超市库存管理系统 Eclipse开发工具 Eclipse是功能强大Java集成开发工具.它可以极大地提升我们的开发效率.可以自动编译,检 ...

  7. 第7天 Java基础语法

    第7天 Java基础语法 今日内容介绍 循环练习 数组方法练习 循环练习 编写程序求 1+3+5+7+……+99 的和值. 题目分析: 通过观察发现,本题目要实现的奇数(范围1-100之间)的累加和. ...

  8. 第6天 Java基础语法

    第6天 Java基础语法 今日内容介绍 自定义类 ArrayList集合 引用数据类型(类) 引用数据类型分类 提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类.Random类 ...

  9. 第5天 Java基础语法

    第5天 Java基础语法 今日内容介绍 方法 方法 方法概述 在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法. 如:小明同学在路边准备坐车来学校学习.这就面临着一件事情(坐车到学校这 ...

  10. 第4天 Java基础语法

    第4天 Java基础语法 今日内容介绍 流程控制语句(switch) 数组 流程控制语句 选择结构switch switch 条件语句也是一种很常用的选择语句,它和if条件语句不同,它只能针对某个表达 ...

随机推荐

  1. 双网卡+mitmproxy+iptables搭建SSL中间人(支持非HTTPS协议)

    "想要解决一个问题,最根本方法的就是了解这一切是如何工作的,而不是玄学." --ASCII0X03 最近学习发现现在很多现成的安卓SSL中间人工具和教程都只针对HTTPS流量,比如 ...

  2. 深入理解.net - 3.类型Type

    说到类型,.NET技术是基于通用类型系统(CTS,Common Type System)的,而CTS又是构建于公共语言架构(CLI,Common Language Infrastructure)之上, ...

  3. 结构化您的Python工程

    我们对于"结构化"的定义是您关注于怎样使您的项目最好地满足它的对象性,我们 需要去考虑如何更好地利用Python的特性来创造简洁.高效的代码.在实践层面, "结构化&qu ...

  4. 语音识别中的CTC算法的基本原理解释

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文作者:罗冬日 目前主流的语音识别都大致分为特征提取,声学模型,语音模型几个部分.目前结合神经网络的端到端的声学模型训练方法主要CTC和基 ...

  5. 如何使用 toml 配置 SpaceVim

    配置 SpaceVim 主要包括以下几个内容: 设置 SpaceVim 选项 启动/禁用模块 添加自定义插件 添加自定义按键映射以及插件配置 设置SpaceVim选项 原先,在 init.vim 文件 ...

  6. CSS position(定位)属性

    关于CSS position,来自MDN的描述: CSS position属性用于指定一个元素在文档中的定位方式.top.right.bottom.left 属性则决定了该元素的最终位置. 然后来看看 ...

  7. 计算机网络相关:应用层协议(二):HTTP

    前言 复习下计算机网络的知识并记录 正文 定义:HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议. 一.HTT ...

  8. 使用Docker镜像和仓库

    https://www.rhel.cc/2014/11/50/   学习目标: 什么是镜像 docker镜像是由文件系统折叠加而成的,最低端是一个引导文件系统,即bootfs: 如何对镜像进行管理 使 ...

  9. 我珍藏的神兵利器 - 效率工具for Win[转]

        工欲善其事必先利其器. 我一直都在不断挑选和优化自己的兵器,以追求着最高效率. 此篇分享下我的私家珍藏的各种神兵利器.如果有朋友能推荐更好的,那就不枉此篇. 分为Windows软件和开发工具两 ...

  10. 基于.net core实现项目自动编译、并生成nuget包

    近期想对自己的项目增加自动编译并生成nuget包,网上资料不少.但总还有迷糊的时候.首先:此解决方案包含多种版本的项目,如:有编译必须是x86平台,以及还有传统的.net foramework项目,以 ...