3.变量与数据类型

前面复习了如何在IDE下写JAVA代码


现在我们来学习一些基本概念?

JAVA中我们常常需要存储一些数据,什么是数据?数据就是对客观事物的逻辑归纳。

普遍认为,

例如A=5,那么A就是一个数据,代表数字5,类型是数字。

例如B=b,那么B也是一个数据,代表字母b,类型是字母。

例如C=啊,那么C也是一个数据,代表汉字啊,类型是汉字。


在JAVA中,常常需要声明变量。


变量的概念来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念,相当于在计算机中开辟的一块存储区域,用来存储数据。


后面会了解到栈空间,堆空间,和静态区的概念。


那么在JAVA中这些应该怎么表示?


【访问修饰符】修饰符+变量类型+变量名=变量默认值

1.访问修饰符:

用来修饰可访问权限。

 访问修饰符权限   类   包  子类  其他包

    public     ∨   ∨   ∨     ∨

    protect    ∨   ∨   ∨     ×

    default    ∨   ∨   ×     ×

    private    ∨   ×   ×     ×

default为不写时的默认。



2.修饰符。


修饰符

名称

说明

备注

static

静态变量(又称为类变量,其它的称为实例变量)

可以被类的所有实例共享。

并不需要创建类的实例就可以访问静态变量

final

常量,值只能够分配一次,不能更改

注意不要使用const,虽然它和C、C++中的const关键字含义一样,可以同static一起使用,避免对类的每个实例维护一个拷贝

transient

告诉编译器,在类对象序列化时,此变量不需要持久保存

主要是因为改变量可以通过其它变量来得到,使用它是为了性能的问题

volatile

指出可能有多个线程修改此变量,要求编译器优化以保证对此变量的修改能够被正确的处理

 





例如:

int a =1;


3.变量类型

Java中已包含了8中基本数据类型:

主要分为三类:

数值型,又包括整数类型(byte,short,int,long)和浮点类型(float,double)

字符型,char

布尔型,逻辑是与非,boolean


取值范围:

基本类型                      大小                                         示例                       取值范围

boolean                 1字节8位                                        true                      true,false

byte                         1字节8位有符号整数                    -12                     -128 — +127

short                         2字节16位有符号整数                 100                    -32768 — +32767

int                      4字节32位有符号整数                  12                    -2147483648 — +2147483647

long                           8字节64位有符号整数                  10000             -2^63 —— +2^63-1

char                           2字节16位Unicode字符                 'a'                  0——65535

float                            4字节32为浮点数                            3.4f              1.4E—45~3.4E+38,-1.4E—45~ -3.4E+38

double                       8字节64位浮点数                           -2.4e3D        4.9E—324~1.7E+308,-4.9E—324~-1.7E+308




面试题:

JAVA中,

char型变量中能不能存储一个中文汉字?为什么?


答案:一个汉字是一个字节。
C#可以存放一个汉字。 C和C++不行。JAVA的char类型是2字节16位以Unicode编码,一个char占16位,所以放一个中文是没问题的 所以可以。

JAVA常用的String不是基本数据类型,而是引用数据类型,一定要区别记忆。

  java中没有全局变量,只有方法变量、实例变量(类中的非静态变量)、类变量(类中的静态变量)。



4.变量名

相当于给变量起个好记的名字。

变量的5个命名规则:

1.$ 、字母、下划线,数字组成。
2.首字母可以以$ 、字母、下划线,不能以数字开头
3.不能是关键字,布尔值或者null.
4.区分大小写,没有长度限制,坚持见名知意原则。
5.以驼峰命名规则来,就是首字母小写,后面也都小写,遇到第二个词出现时,首字母大写。
例如:teacherAge 老师的年龄    
口诀就是:字下美人数骆驼

JAVA关键字:

  
  
break
case
const
continuedefaultdodoubleelse
enumextendsfinalfinallyfloat
forgotoifimplementsimport
instanceofintinterfacelongnative
newpackageprivateprotectedpublic
returnstrictfpshortstaticsuper
switchsynchronizedthisthrowthrows
transienttryvoidvolatilewhile

数据类型转换:
数据类型之间是可以相互转换的。
存储位数越高越多,类型的级别也越高。
转换方式有两种,自动转换和强制转换。
1.自动转换。
将低级转给高级,进行自动转换。
例如:
byte b = 7;
int i =b;
这就完成了自动转换。
2.强制转换。
将高级转给低级,进行强制转换。
例如:
int n = 786;
byte b = n ;//这就是错误的
short s = n;//这也是错误的
short s =(short)n;//强制类型转换。
大转小有时候会出现问题——丢失数据,例如小数点后面的数。
小转大则无碍。

JAVA中的注解:
注解是开发人员和程序阅读之间交流的重要手段,是对代码的解释和说明。
好的注解可以提高代码的可读性,减少维护成本。

分为 单行注解、多行注解和文档注解。
单行://内容
Eclipse快捷键:Ctrl+/
多行:/*
         * 内容
        */
Eclipse快捷键:Ctrl+Shift+/
文档:
/**
*内容
*/
还有一些标签注解 以@开头的。
@author  作者 
@version   版本
等等


引用数据类型 String :
字符串类型。字面常量。
面试题:关于String 的空间开辟。

		String str = "abc";//常量池 有就引用 没有就开辟空间
		String a = "abc";//没有开辟空间 和上面的指向同一对象
		String b = str+a;//开空间重新放
		String str1= new String("abc");//堆 开辟空间
		String aa = "";//一个空间
		String d = null;//无空间
		String x="a"+"b"+"c";//a b c ab abc 五个空间
		
		//System.out.println();=toString();

Java中String类的常用方法有哪些?

public char charAt(int index)

返回字符串中第index个字符;
public int length()
返回字符串的长度;
public int indexOf(String str)
返回字符串中第一次出现str的位置;
public int indexOf(String str,int fromIndex)
返回字符串从fromIndex开始第一次出现str的位置;
public boolean equalsIgnoreCase(String another)
比较字符串与another是否一样(忽略大小写);
public String replace(char oldchar,char newChar)
在字符串中用newChar字符替换oldChar字符
public boolean startsWith(String prefix)
判断字符串是否以prefix字符串开头;
public boolean endsWith(String suffix)
判断一个字符串是否以suffix字符串结尾;
public String toUpperCase()
返回一个字符串为该字符串的大写形式;
public String toLowerCase()
返回一个字符串为该字符串的小写形式
public String substring(int beginIndex)
返回该字符串从beginIndex开始到结尾的子字符串;
public String substring(int beginIndex,int endIndex)
返回该字符串从beginIndex开始到endsIndex结尾的子字符串
public String trim()
返回该字符串去掉开头和结尾空格后的字符串
public String[] split(String regex)
 
面试题:
 
 
堆栈的底层概念简介:
JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)

堆区:
1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)
2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身
栈区:
1.每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中
2.每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。
3.栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。
方法区:
1.又叫静态区,跟堆一样,被所有的线程共享。方法区包含所有的class和static变量。
2.方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量。

此处我们先大概了解一下。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值