• 数据类型初阶

  • 基本数据类型的包装类

  • 整数类型&浮点类型&字符类型

  • 大小类型转换

  • 通过Scanner从控制台获取数据

  • 变量相关基础算法

  • Java的错误类型

  • 字符串String

  • 补充-Package

一、数据类型初阶

  • 栈空间(Stack)

1.存取效率高,存储空间小

2.JVM将基本数据类型存储于Stack

  • 堆空间(Heap)

    1.存取效率较低,存储空间大()

    2.类型:数组、字符串、对象

    3.存放位置随机分配

  • 字面量:

    Java的变量和变量中存放的具体的数据称为字面量,eg.常量

  • 驼峰命名法:

    sumScore

二、基本数据类型的包装类

eg.Interger类

1.封装了实用的方法和常量

int Integer.parseInt(String SInteger);//将String类型的整数转换成int类型 //parse:解析

2.在集合中用来定义集合元素的类型

三、整数类型

1.java底层byte和short按照32位(int类型)计算

	byte b1 = 5;
//error:byte b2 = b1+3; //b1+3 default ——>int byte b2 = (byte) b1 +3 ; //right
int b2 = b1+3;

四、浮点类型

1.Defalut result = Double;

字面量结果double

//Example
float f = 5.3; //Error:
float f = 5.3f;//Ok

2.精度:小数是以尾数长度来表示精度的。

eg.pi = 3.1415 的精度是4

3.结果为近似,有误差

五、字符类型

Java底层使用Unicode编码的一部分,1个char 16 bit (即2 bytes)

六、类型转换

小类型——>大类型

1.自动类型转换,由JVM负责,隐式类型转换

2.规则:符号位自动拓展,负数补1,正数补0

3.小类型向大类型转换一般是安全的,当小类型的精度高于大类型时要注意精度丢失的隐患

//int——>float 丢失精度
//float 尾数精度23位
int i = 0x1000001;//7位*4(16进制与2进制1比4转换) 28位二进制
float f = i;
System.out.println(Integer.toBinaryString(i)+":"+i);
System.out.println(Integer.toBinaryString((int) f)+":"+f);

大类型——>小类型

1.强制类型转换(显式)
2.边界数风险(数据位成为符号位或大类型的数据超过小类型的位数)

通过args数组获取数据

  • 通过main方法的args数组可以从控制台获取一组字符串数据
	配置 Run Configurations
New->Arguments->program arguments 中的值作为 args[] 的参数传入

七、通过Scanner从控制台获取数据

1.Scanner类位于java.util.Scanner包中,用于扫描从控制台输入的数据,可以接受字符串和基本数据类型的数据。

	String next();		//接收从控制台输入的一个字符串,End with Space or Enter
String nextLine(); //可接收空格,End with Enter
int nextInt(); //接收从控制台输入的一个int类型的数据

2.输入char类型的数据

	char String.charAt(int index);	//从字符串中获取指定下标的字符,下标从0开始
"abc".charAt(0)的值为a;
char name = scanner.next().charAt(0); //从控制台输入中取第一个字符
  1. 使用步骤

    Scanner scanner = new Scanner(System.in);//创建Scanner类的一个对象

    System.out.println("Name:");

    String name = scanner.next(); //通过scanner调用next等方法,接收控制台输入的数据

八、变量相关算法

自增、自减、自乘和自除

	int i = 1;
System.out.println(++i);//先加1,再输出

互换两个变量值的算法

  • 解法1 中间变量
	int a = 100;
int b = 50;
int c = a;
a = b;
b = c;
  • 解法2 不借助中间变量,仅在两个变量之间交换值
	int a = 100;
int b = 50; a = a+b; //result: a = a+b; b= b;
b = a-b; //result: a = a+b; b= a;
a = a-b; //result: a = b; b= a;

九、Java的错误类型

  • 编译用法错误
  • 运行异常错误
  • 运行逻辑错误

十、字符串String

10.1 String字符串

  1. 实例化String对象
	String str1 = "Hello";     //直接赋值,更优
String str2 = new String("Hello");//使用关键字new,开辟了两片内存

2.内容比较

	String str1 = "Hello";                   //直接赋值,更优
String str2 = new String("Hello"); //使用关键字new,开辟了两片内存
System.out.println(str1 == str2) //OUTPUT:false
System.out.println(str1.equals( str2 )) //OUTPUT:false
"==" ——>地址比较
"equals"方法——>内容比较

注:字符串操作尽可能多使用封装函数

3.String字符串内容不可更改

	public static void tell(String s){
s = "I love coding.";
} public static void main(String[] args)
{
String str = "Hello";
System.out.println(str.toString());
tell(str);
System.out.println(str.toString());
} }
OUTPUT: Hello
Hello
	String str = "hello"
str = str + "world";

改变的而是堆内存地址的指向,原内容暂时未被释放

注:每次String更改内容,其本质是开辟了新的内存空间,耗资源,不提倡,应改用

StringBuffer操作类

10.2 String字符串常用方法

	//1.字符串长度length()

	String str = "helloworld@"
System.out.println(str.length()); //2.字符串转化为数组toCharArray()
char data[] = str.toCharArray();
for (int i = 0;i < data.length;i++)
{
System.out.print(data[i]+" ");
}
OUTPUT:h e l l o w o r l d @ //3.从字符串中取出指定位置的字符 charAt()
System.out.println(str.charAt(7));
OUTPUT: r //第八个字符 ,由于从0开始计数 //4.过滤字符串中存在的字符 indexOf()
str.indexOf("@");
OUTPUT:11 //查找并返回位置 //5.去掉字符串中的空格:trim() //6.从字符串中取出子字符串:subString() //7.大小写转换:toLowerCase() toUpperCase(); //8.判断字符串的开头结尾字符:endsWith() startWith() //9.替换字符串中的一个字符: replace()

10.3 StringBuffer操作类

1.StringBuffer缓冲区可以被更改(区别于String)
```java
public static void tell(StringBuffer s){
s.append(" I love coding.");
} public static void main(String[] args)
{
StringBuffer buffer = new StringBuffer();
buffer.append("helloword"); //追加内容
System.out.println(buffer.toString());
tell(buffer);
System.out.println(buffer.toString());
} } OUTPUT: helloword
helloword I love coding. ``` 2.StringBuffer常用方法
```java
buffer.append("Coding");//追加
buffer.insert(0,"I love");//从第0个位置开始插入
buffer.replace(start,end,"替代内容");
```

10.4 StringBuilder

  • 一个可变的字符序列,作为StringBuffer的一个简单替换,用在字符串缓冲区被单个线程使用的时候,效率比StringBuffer高

  • 涉及到线程安全——>建议用StringBuffer

补充

Package

Java中的一个包就是一个类库单元,包内包含有一组类,它们在单一的名称空间之下被组织在了一起。这个名称空间就是包名。

【JAVA语法】01Java-变量与数据类型的更多相关文章

  1. 学习 JavaScript (三)核心概念:语法、变量、数据类型

    JavaScript 的核心概念主要由语法.变量.数据类型.操作符.语句.函数组成,这篇文章主要讲解的是前面三个,后面三个下一篇文章再讲解. 01 语法 熟悉 JavaScript 历史的人应该都知道 ...

  2. javascript基础语法备忘录-变量和数据类型

    //javascript基础语法备忘录-变量和数据类型 // 定义变量使用var关键字 后面跟变量名,不要使用eval 和arguments为变量名 var message = "hi&qu ...

  3. 前端学习笔记--js概述与基础语法、变量、数据类型、运算符与表达式

    本篇记录js的概述与基础语法.变量.数据类型.运算符与表达式 1.概述与基础语法 2.变量 举例: 3.数据类型 4.运算符与表达式

  4. python基础语法(变量与数据类型)

    python基础语法(变量与数据类型) 一.python变量 python中的变量不需要声明.每个变量在使用钱都需要赋值,变量赋值以后,该变量才会被创建 在python中,变量就是变量,它没有类型,我 ...

  5. Java 第二章 变量、数据类型和运算符

    第二章      变量.数据类型和运算符 什么是变量: 变量代表一块内存区域,变量类型不一样,这一块内存的大小也不一样. #在编程语言里面,你可以通过定义变量,向内存里添加数据或者修改内存已有的数据. ...

  6. IT兄弟连 Java语法教程 变量1

    什么是变量 在Java程序中,变量是基本的存储单元.是在程序运行中值可以改变的一块内存区域.变量是通过标识符(变量名).变量类型及可选的初始化器来定义的,此外,所有的变量都有作用域,作用域定义了变量的 ...

  7. Java中的变量、数据类型和运算符

    1. java语言是一种强类型的语言,对各种数据类型都有明确的区分,而计算机使用内存来记忆大量运算时需要使用的数据,而当声明一个变量时,即在内存中划分一块空间存储数据,而变量类型决定划分内存空间的大小 ...

  8. Java中的变量,数据类型和运算符

    变量,数据类型和运算符 1.变量是一个数据存储空间的表示,它是储存数据的基本单元. 如何理解这句话,下面用一个表格可以形象的表达: 变量与房间之间的对应关系 房间名称 变量名 房间类型 变量类型 入住 ...

  9. (4)PHP基本语法、变量、数据类型、运算符、流程控制

    一.基本语法 1.PHP在网页里的结构 <?php ..... ?> 2.php的另一种格式(不推荐使用) <script language="php"> ...

  10. 二、 java中的变量与数据类型及类型转换

    标识符:凡是可以自己命名的地方都叫标识符,如:类名.方法名.接口名... 1.标识符命名的规则: 由26个英文字母大小写,0-9,_或$组成,不遵守会报错. 不可以用数字开头. 不能使用关键字和保留字 ...

随机推荐

  1. ZOJ - 3649 树上倍增

    题意:给出一个图,先求出最大生成树,然后多次询问树上路径\(u→v\)的有向最大极差\(max(a_i-a_j),i>j\),其中\(i\)和\(j\)指代节点在路径中出现的顺序 极差具有单调性 ...

  2. [转] Linux中的默认权限与隐藏权限(文件、目录)

    [From] https://blog.csdn.net/davidsky11/article/details/25424615 一个文件(或目录)拥有若干个属性,包括(r/w/x)等基本属性,以及是 ...

  3. Dubbo的Api+Provider+Customer示例(IDEA+Maven+Springboot+dubbo)

    项目结构 dubbo-demo dubbo-api:提供api接口,一般存储实体类和接口服务 dubbo-provider:dubbo生产者提供服务,一般存储接口具体实现 dubbo-customer ...

  4. 文献综述十四:基于Oracle11g的超市进销存管理系统设计与实现

    一.基本信息 标题:基于Oracle11g的超市进销存管理系统设计与实现 时间:2016 出版源:技术创新 文件分类:对数据库的研究 二.研究背景 为超市设计开发的超市管理系统,采用的是 VC+ Or ...

  5. lfs

      LFS──Linux from Scratch,就是一种从网上直接下载源码,从头编译LINUX的安装方式.它不是发行版,只是一个菜谱,告诉你到哪里去买菜(下载源码),怎么把这些生东西( raw c ...

  6. RabbitMQ 很成熟 不是阿里的

    简介 官网 http://www.rabbitmq.com RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现 RabbitMQ实现了AMQ ...

  7. 更新Mac双系统多分区

    前言制作Mac USB系统安装盘安装Mac OS 10.12制作win10 USB系统安装盘安装win10windows多分区实现 前言 同事有一台mac pro,系统是mac os 10.9+win ...

  8. vue-quill-editor html编辑器

    在Vue项目使用quill-editor带样式编辑器(更改插入图片和视频)  https://www.cnblogs.com/zhengweijie/p/7305903.html   vue-quil ...

  9. ASP.NET MVC 域名泛解析设置

    最近有个需求要做一个动态二级域名的网站,我们可以通过这样的方式去访问我们的网站 http://用户名.blog.com.而这里的用户名是根据程序的需要动态生成的.这里就会涉及到DNS服务器,要做相应的 ...

  10. XmlReader在序列化中的使用

    和XmlDocument最大的不同——XmlReader逐行读取.单独很少使用,一般配合序列化(反序列化)使用,以下给出具体例子: namespace ConsoleApplication1 { pu ...