2.JAVA-基础语法以及String的介绍
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。
2.JAVA-基础语法以及String的介绍的更多相关文章
- 043 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 05 do-while循环介绍及应用
043 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 05 do-while循环介绍及应用 本文知识点:do-while循环介绍及应用 do-while循 ...
- 011 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 05 变量的三个元素的详细介绍之三—— 变量值——即Java中的“字面值”
011 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 05 变量的三个元素的详细介绍之三-- 变量值--即Java中的"字面值" 变量值可以是 ...
- 010 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 04 变量的三个元素的详细介绍之二——变量类型——即Java中的数据类型
010 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 04 变量的三个元素的详细介绍之二--变量类型--即Java中的数据类型 Java中变量的三要素 变量名 变 ...
- Java基础笔记 – Annotation注解的介绍和使用 自定义注解
Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 | 被围观 25,969 views+ 1.Anno ...
- Java基础语法(上篇)
Java基础语法(上篇) 知识概要: (1)关键字的表示与规范 (2)标示符 (3)注释 (4 ...
- 第8天 Java基础语法
第8天 Java基础语法 今日内容介绍 Eclipse开发工具 超市库存管理系统 Eclipse开发工具 Eclipse是功能强大Java集成开发工具.它可以极大地提升我们的开发效率.可以自动编译,检 ...
- 第7天 Java基础语法
第7天 Java基础语法 今日内容介绍 循环练习 数组方法练习 循环练习 编写程序求 1+3+5+7+……+99 的和值. 题目分析: 通过观察发现,本题目要实现的奇数(范围1-100之间)的累加和. ...
- 第6天 Java基础语法
第6天 Java基础语法 今日内容介绍 自定义类 ArrayList集合 引用数据类型(类) 引用数据类型分类 提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类.Random类 ...
- 第5天 Java基础语法
第5天 Java基础语法 今日内容介绍 方法 方法 方法概述 在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法. 如:小明同学在路边准备坐车来学校学习.这就面临着一件事情(坐车到学校这 ...
- 第4天 Java基础语法
第4天 Java基础语法 今日内容介绍 流程控制语句(switch) 数组 流程控制语句 选择结构switch switch 条件语句也是一种很常用的选择语句,它和if条件语句不同,它只能针对某个表达 ...
随机推荐
- Ubuntu命令操作
1../ 当前路径2.ls 列举当前路径下的所有文件及文件夹 默认情况不显示隐藏文件 ls -a 显示隐藏文件 ls -lah h是文件大小 l是显示文件3.cd 跳转路径4.pwd 查看当前所在路径 ...
- vsts + XX云服务器构建netcore+docker持续集成交付部署
持续集成交付部署是什么意思,它给我们带来什么好处? 先贴一张图 持续集成(Continuous Integration) 持续集成强调开发人员提交了新代码之后,立刻进行构建.(单元)测试(这个要看情况 ...
- form 表单提交返回值问题
form不比ajax,即使后台返回值后,在页面也不知道怎么去取值判断提交状态.所以前几天结合网上资料整了一个小案例,需要用到ajaxSubmit,即通过ajax来提交表单,好处在于可以在任何情况下进行 ...
- HTTPS 之 TLS 性能调优
HTTPS(HTTP over SSL)是以安全为目标的 HTTP 通道,可以理解为 HTTP + SSL/TLS,即在 HTTP 下加入 SSL/TLS 层作为安全基础.其中 TLS 的前身是 SS ...
- 第四章——训练模型(Training Models)
前几章在不知道原理的情况下,已经学会使用了多个机器学习模型机器算法.Scikit-Learn很方便,以至于隐藏了太多的实现细节. 知其然知其所以然是必要的,这有利于快速选择合适的模型.正确的训练算法. ...
- genymotion的安装及运行
一.下载工具 安装genymontion一共需要下载三个东西,分别是genymotion.虚拟机virtualbox和ova 笔者提供百度云下载:mac版虚拟机 mac上genymotion.wind ...
- DW自动换行
查看→代码视图选项→自动换行
- Android圆形头像,拍照后“无法加载此图片”的问题解决(适配Android7.0)
Feature: 点击选择拍照或者打开相册,选取图片进行裁剪最后设置为圆形头像. Problem: 拍好照片,点击裁剪,弹Toast"无法加载此图片". Solution: 在裁剪 ...
- ionic3 懒加载在微信上缓存的问题
1.懒加载是什么? 在ionic2中所有的组件.模块.服务.管道等都堆积在app.module.ts模块中,在页面初始化的时候会一次性加载所有的资源,导致资源过大,页面渲染缓慢,也导致app.modu ...
- C# WinForm ShowInTaskbar Api Version
using System; using System.Runtime.InteropServices; namespace x { unsafe class NativeWindow { /* * W ...