1 基本数据类型

整型4种:byte 1个字节;short 2个字节;int 4个字节;long 8个字节。

浮点型:float 4个字节;double 8个字节;

布尔型:boolean   true&false

字符型:char  char 采用unicod的16位编码方式进行编码。

2 引用数据类型

引用数据类型包括:类、接口类型、数组类型、枚举类型、注解类型;

基本数据类型和引用数据类型的区别:

基本数据类型和引用数据类型的区别主要在存储方式上;

基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上;

引用数据类型在被创建时,首先要在栈上给其引用分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。

例如:我有一个类MyDate,其中有属性day,mouth,year等,有构造方法(带参数);

现在为其创建一个对象MyDate d1 = new MyDate(8,8,2008);

在内存中的具体创建过程是:

1)首先在栈内存中位其d1分配一块空间;

2)然后在堆内存中为MyDate对象分配一块空间,并为其三个属性设初值0,0,0;

3)根据类MyDate中对属性的定义,为该对象的三个属性进行赋值操作;

4)调用构造方法,为三个属性赋值为8,8,2008;(注意这个时候d1与MyDate对象之间还没有建立联系)

5)将MyDate对象在堆内存中的地址,赋值给栈中的d1;通过句柄d1可以找到堆中对象的具体信息。

4 访问修饰符

package(默认),private,protected,public

1:package是默认的保护模式,又叫做包访问,没有任何修饰符时就采用这种保护模式。包访问允许域和方法被同一个包内任何类的任何方法访问.(包内访问)。

2:private标识得访问模式,表示私有的域和方法只能被同一个类中的其他方法访问,实现了数据隐藏;必要时,可以通过方法访问私有变量.(类内访问)。

3:public修饰符用于暴露域和方法,以便在类定义的包外部能访问它们。对包和类中必要的接口元素,也需要使用这个级别;main()方法必须是public的,toString()方法也必须是public的。一般不会用public暴露一个域,除非这个域已经被声明为final。(跨包访问)。

4:protected修饰符提供一个从包外部访问包(有限制)的方法。在域和方法前增加protected修饰符不会影响同一个包内其他类的方法对它们的访问。要从包外部访问包(其中含有protected成员的类),必须保证被访问的类是带有protected成员类的子类。也就是说,希望包中的一个类被包之外的类继承重用时,就可以使用这个级别。一般应该慎用。(包中类被包外类继承慎用)。

5 运算符

1、算术运算符;

算术运算符也就是我们小学所学过的:+ - * /;还有取模运算符:%;取模运算符也就是求余的

运算;

运算形式:操作数 + 操作数;操作数 - 操作数;操作数 * 操作数;操作数 / 操作数;操作数

% 操作数;

2、递增和递减运算符;

递增运算符是++,递减运算符是--;

也就是相当于递增就加1,递减就减1的运算;

运算形式:(递增)变量++;++变量;(递减)变量--;--变量;

怎么理解呢?

也就是递增或递减即可放在变量的前面,也可以放在变量的后面;运算符在前面的(++、--),就

先运算前面的(++、--),在后面的就后运算(++、--);

3、关系运算符;

运算形式:左操作数 关系运算符 右操作数;

在关系运算符中,最终得到的一定是布尔类型中的真(true)或者假(flase),不会有第三种值;

关系运算符包括: == 等于:如果两个值相等,则返回真值

!= 不等于:如果两个值不想等,则返回真值

< 小于:如果左操作数的值小于右操作数的值,则返回真值

> 大于:如果左操作数的值大于右操作数的值,则返回真值

<= 小于等于:如果左操作数的值小于或等于右操作数的值,则返回真值

>= 大于等于:如果左操作数的值大于或等于右操作数的值,则返回真值

在计算机编程中,关系运算符是比较重要的一部分;它是根据某个变量的值来执行特定的操作;

4、位运算符;

运算符 描述

& 与

| 或

^ 异或

~ 非(把0变成1,把1变成0)

在java中,位运算很少,大家只有知道就行了,到用了的时候,参照一下真值表就行了;

5、逻辑运算符;

在逻辑运算符中,最后得到的值也是一个布尔类型的teue(真)或flase(假);

运算符 描述

&& 与

|| 或

! 非

6、位移运算符;

学习位移;首先我们先阐述一下符号位的概念;

符号位:是数的最后一位,不用来计算的;

当符号位为0时,值为正数;当符号位为1时,值为负数;

无符号位时为正数,有符号位时为正数或者负数;

运算符 描述

<< 左移

>> 右移

>>> 右移(补零)

左移(<<) 运算形式:值 << 位数

右移(>>) 运算形式:值 >> 位数

移动后,左移、右移都会保留符号位!

右移(补零),移动后,不保留符号位,永远为正数,因为其符号位总是被补零;

7、运算符优先级;

一般,我们都是先运算的用括号括起来,跟我们小学学习的一样;

字符和字符串的区别:字符时用单引号括起来的,而字符串是用双引号括起来的;

注意:在java中,“+”运算符两侧的操作数中,只要有一个字符串(String)类型,系统会自动将其

他的操作数转换为字符串后再进行连接;运行时,只要和字符串相加,无论任何形式,都是以字符串

形式运行出来的;

8、Java语言支持四种类型:接口,类,数组和原语类型。其中前三种被称为是引用类型,类的实例和数组是对象,而原语类型的值不是对象。一个类的成员包括他的域,方法,成员类和成员接口。

一个方法的原型包括他的名字和所有形参的类型,方法原型不包括他的返回类型。

java 基本知识点学习的更多相关文章

  1. Java核心知识点学习----多线程中的阻塞队列,ArrayBlockingQueue介绍

    1.什么是阻塞队列? 所谓队列,遵循的是先进先出原则(FIFO),阻塞队列,即是数据共享时,A在写数据时,B想读同一数据,那么就将发生阻塞了. 看一下线程的四种状态,首先是新创建一个线程,然后,通过s ...

  2. Java核心知识点学习----使用Condition控制线程通信

    一.需求 实现线程间的通信,主线程循环3次后,子线程2循环2次,子线程3循环3次,然后主线程接着循环3次,如此循环3次. 即:A->B->C---A->B->C---A-> ...

  3. Java核心知识点学习----线程中如何创建锁和使用锁 Lock,设计一个缓存系统

    理论知识很枯燥,但这些都是基本功,学完可能会忘,但等用的时候,会发觉之前的学习是非常有意义的,学习线程就是这样子的. 1.如何创建锁? Lock lock = new ReentrantLock(); ...

  4. java核心知识点学习----equals和==的比较、单例模式,饿汉式,饱汉式

    最近发现自己学习能力变慢了,想来想去还是发现是因为自己Java基础没有打扎实,接下来的一系列文章将主要记录自己对于Java的最基础知识点的学习. 一.equals和==的比较 先看例子: packag ...

  5. Java核心知识点学习----多线程 倒计时记数器CountDownLatch和数据交换的Exchanger

    本文将要介绍的内容都是Java5中的新特性,一个是倒计时记数器---CountDownLatch,另一个是用于线程间数据交换的Exchanger. 一.CountDownLatch 1.什么是Coun ...

  6. java核心知识点学习----创建线程的第三种方式Callable和Future CompletionService

    前面已经指出通过实现Runnable时,Thread类的作用就是将run()方法包装成线程执行体,那么是否可以直接把任意方法都包装成线程执行体呢?Java目前不行,但其模仿者C#中是可以的. Call ...

  7. java核心知识点学习----重点学习线程池ThreadPool

    线程池是多线程学习中需要重点掌握的. 系统启动一个新线程的成本是比较高的,因为它涉及与操作系统交互.在这种情形下,使用线程池可以很好的提高性能,尤其是当程序中需要创建大量生存期很短暂的线程时,更应该考 ...

  8. java transient 知识点学习

    今天看源码的时候看到这个关键字,完全没见过,不懂.好吧!学习一下. 我们都知道实现了Serilizable接口的类,便可以序列化,那么其中某些成员变量不想被序列化怎么办?就是利用transient这个 ...

  9. java核心知识点学习----并发和并行的区别,进程和线程的区别,如何创建线程和线程的四种状态,什么是线程计时器

    多线程并发就像是内功,框架都像是外功,内功不足,外功也难得精要. 1.进程和线程的区别 一个程序至少有一个进程,一个进程至少有一个线程. 用工厂来比喻就是,一个工厂可以生产不同种类的产品,操作系统就是 ...

随机推荐

  1. 三年所有JAVA技术文档列表

    学习工作流workflow管理基础概念.pdf 深入浅出Struts2(PDF).zip 深入浅出Hibernate.pdf 敏捷软件开发:原则.模式与实践.rar 精通Oracle.10g.Pl.S ...

  2. statspack系列8

    原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-8/ 作者:Jonathan Lewis 在前面的关于stat ...

  3. C#反射之基础应用

    今天把反射的东西整理了一下 , 提供了最全面的东西 , 当然也是基础的东西 ,在学好了这一切的基础上 , 大家可以学习反射的具体插件等应用 首先我们建立一个类库 , 将它生成为 reflectPrj  ...

  4. UIImagePickerController 如何显示中文界面

    1: 添加中文的 Localizations Project --> Info --> Localizations  添加 "Chinese(Simplified)" ...

  5. (转载)AS3中的mouseEnabled与mouseChildren

    (转载)http://www.cnblogs.com/gongchen/archive/2013/05/09/3069055.html mouseEnabled与mouseChildren都是用来确定 ...

  6. ARM学习笔记8——通用寄存器和存储器内容交换指令和软中断指令

    交换指令将一个存储单元内容与制定的寄存器内容相交换,交换指令为进程间同步提供了一种方便的解决途径.该指令产生一堆原子Load/Store操作,该操作发生在一个连续的总线操作中,在操作期间阻止其他任何指 ...

  7. PHP中 magic_quotes_gpc 和 magic_quotes_runtime 区别及其反斜线转义问题

    php中关于反斜线转义: php中数据的魔法引用函数 magic_quotes_gpc  或 magic_quotes_runtime     设置为on时,当数据遇到 单引号' 和 双引号" ...

  8. HTML5 Canvas核心技术—图形、动画与游戏开发.pdf4

    CanvasRenderingContext2D对象中用于平移.旋转坐标系的方法 镜像 scale(1,-1)绘制垂直镜像:scale(-1,1)绘制水平镜像 自定义的坐标变换 transform() ...

  9. Bzoj 1853: [Scoi2010]幸运数字 容斥原理,深搜

    1853: [Scoi2010]幸运数字 Time Limit: 2 Sec  Memory Limit: 64 MBSubmit: 1774  Solved: 644[Submit][Status] ...

  10. ubuntu64bits环境下搭建Opencl的环境

    此文介绍 ubuntu 平台下配置 AMD/ATI Opencl 环境,我是ubuntu 12.04. 主要分为六个步骤: 1. Take a look at your hardware to mak ...