JAVA基础(一)

JAVA总体分为:JAVASE,JAVAEE,JAVAME。


|- 1.JavaSE 全称:Java Platform Standard Edition(JAVA平台标准版

JAVA技术核心

主要用于桌面应用程序的开发

|-2.JavaEE 全称:Java Platform Enterprise Edition(企业版)

用于网络程序和企业级应用开发

JAVAME :开发手机APP

   |-3.开发JAVA的步骤

|-1

|-1)编写源程序

|-2)编译

|-3)运行

|-2

|-1)创建一个JAVA项目

|-2)手动创建JAVA源程序

|-3)编译JAVA源程序

|-4)运行JAVA程序

|-1.2 .1 JAVA项目组织结构

1. 包资源管理器

2. 导航器

|-1.2.2

|-1.JAVA程序的注释

1. 多行注释 /* */

2. 单行注释// 

Ch02 变量、数据类型和运算符

|-1. Java中常用的数据类型

int    整型

double   双精度浮点型

char  字符型

String 字符串型

|-2. 变量命名规则

1. 变量必须以字母、下划线或$符号开头

2. 可以包括数字,但不能以数字开头

3. 除了“_”和以外,变量名字不能包括任何特殊字符

4. 不能使用Java关键字 int class public

|-3.运算符

赋值运算符 =

算数运算符  + - * / %

|-4.数据类型转换

1. 自动数据类型转换

a) 两种类型要兼容,数值类型(整型和浮点型)互相兼容

b) 目标类型大于原类型 double>int

2. 强制数据类型转换

03 运算符和条件结构

|-3.1 boolean

true  or  false 

|-3.2关系运算符

><  >= <=  == !=

|-3.3 if 条件结构

if(条件)

{

}

|-3.4 switch 

|-3.5 if else

|-3.6 多重if

04 循环结构

|-1.while 

|-2.do while

区别:

1. 语法不同,与while循环相比 do-while循环将while关键字和循环条件放在后面,而且前面多了do关键字,后面多个分好

2. 执行次序不同,while循环先判断后执行,do-while先执行 后判断,

3. 一开始循环条件不满足的情况下,while循环一次都不会执行,do-while循环不管什么情况至少执行一次。

|-4.2 调试

步骤:

Ø 分析出错位置,设置断点

Ø 启动调试单步运行

Ø 观察变量

Ø 发现问题

Ø 修正代码,重新运行

Ø 解决问题

循环结构(2

for 循环  break continue

06——对象和类

区别:类定义了对象将会拥有的属性和方法

对象和实体所拥有的特征在类中表示时称为类的属性

对象执行的操作称为类的方法

类是对象的类型

6.1对象的属性和方法

6.2封装 

6.3数据类型

数据类型分为基本数据类型和引用数据类型

基本数据类型包括:int double char Boolean

引用数据类型:String 

区别:基本数据类型没有方法 引用数据类型有方法。

1.原始数据类型包括byteintcharlongfloatdoublebooleanshort,对应的封装类booleanBoolean  charCharacter  byteByte  shortShort  intInteger  longLong  floatFloat  doubleDouble 。引用类型和原始类型的行为完全不同,并且它们具有不同的语义。原始数据类型保存在栈中,保存的是实际值;引用类型也保存在栈中,保存的是一个实际对象的地址。它们占用空间大小和存取速度不同;当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关

2.java的8种基本类型:
byte,short, char, int, long,float,double,boolean.
与此对应的,java提供了8种包装类型:
Byte,Short,Character,Integer,Long,Float,Double,Boolean.
它们之间的相互转换:例如:
double a=1;
//把double基本类型转换为Double包装类型
Double b=new Double(a);
//把Double包装类型转换为double基本类型
a=b.doubleValue();

所谓引用,就是指针了,就是说对象指向的不是数据本身,而是它所在的内存地址.
数组就是引用类型!
一般在传参的时候用的最多。

3.区别主要体现在使用函数 传入参数的时候

基本数据类型由于在内存中的一个地址存放的是这些变量的值 所以 调用函数 函数里的形参 就是复制这些变量的值 以后对形参值的变化 不会影响到原来变量的值

而引用数据类型由于在内存中是引用他的一个内存地址而不是具体的值 所以 所以 调用函数 函数里的形参 就是复制这些变量的值的地址 当对形参的值 进行修改的时候 就等于是对 这些变量的值 进行修改所以会影响到原来变量的值

4.基本数据类型包括byteintcharlongfloatdoublebooleanshort八种基本数据类型,简单的说就是在内存中的一个地址存放的是这些数值,一个变量指向的是这个内存地址
而其他的属于类对象
在内存中是引用他的一个内存地址而不是具体的值

5.传递就是
基本数据类型传递的是值。
引用数据类型传递的是地址。

所以在方法里如果同时改变两个个数据的话
基本数据类型是不会改变的(因为在内存中它指向的数据的地址没改变,所以不会发生改变)
改变的只是形参
引用数据类型如果改变的话,他改变的是地址指向的堆中的数据。所以方法结束后也会改变

举例说明 
public static void main(String[] args){
int a=1;
int[] nums=new int[2]={1,2};
change(a);
change2(num2);
System.out.println(a);
System.out.println(num2[0]);
}
public static void change(int a){//此时a是形参
a=100;//形参值改变。main()方法中的a还是10
}
public static void change2(int[] nums){
nums[0]=100;
}
则最后的结果是 10,100

6.基本数据类型存放的是一个值,而引用类型存放的是一个(对象)地址。

7.Java编程思想中关于基本数据类型和引用数据类型的区别

  ┏数值型━┳━整数型:byte short int long
       ┏基本数据类型━━┫       ┗━浮点型:float double
       ┃              ┣字符型:char                     
数据类型╋              ┗布尔型:boolean       
       ┃              ┏类(class)
       ┗引用数据类型━━╋接口(interface)
                       ┗数组(array)

  java的数据类型分基本数据类型(原始数据类型)和引用数据类型;

  基本数据类型:

  基本数据类型基本上都是一些特别小而且特别简单的变量,如果用new创建对象,由于new创建的对象都是存放在堆中,大家知道,由于堆的灵活性决定它的效率要低于堆栈,所以对于8种基本数据类型,Java不采用new创建句柄的方式,而是直接在堆栈中创建了一个非句柄的自动变量,容纳了具体的值,所以能够高效存取。

  引用数据类型:

  引用数据类型就那三种,类似C/C++的指针,它以特殊的方式指向对象实体(具体的值),这类变量声明时不会分配内存,new的时候,存储了一个句柄在堆栈中以便高效引用,其对象实体(具体的值)在堆中开辟了一块内存,通过堆栈中的句柄调用该实体。

8.数据类型、值传递和引用传递有什么区别,String是什么传递?

 

        ①总体而言,Java中的数据类型分为两大类,即原始类型的对象类型(或叫引用类型),后者是指由类生成的对象的类型,我们将在下一节详解;Java中的原始类型有如下8种,如表所示。 

类型

称呼

值域

表示范围

byte

字节型

8 bits

-128~127

int

整型

32 bits

-2,147,483,648~ -2,147,483,647

short

短整型

18 bits

-32,768~32,767

long

长整型

64 bits

-9,223,372,036,854,775,808~ 9,223,372,036,854,775,807

char

字符型

16 bits (UNICODE)

0~65535

float

浮点型

32 bits IEEE 754-1985

double

双精度

64 bits IEEE 754-1985

boolean

布尔型

true/flase

只有“真”或“假”两种结果


        ②JAVA中的参数传递全是以值传递的。是基本类型,就拷贝一个基本类型传进方法;是引用,就拷贝一个引用变量传进去方法。 
        关键是区分对象和引用。 
        对象是传引用,简单类型是传值。 
       “参数传递”就是调用对象和被调用对象之间数据传递的过程,它有两种方式:一种方式是将调用对象的数据(源数据)拷贝一份传递给被调用对象(作为新数据),这种方式叫做“值传递”,在这种方式下,被调用对象对新数据的改变不影响源数据的取值,如基本类型的传递;另一种方式是将调用对象的数据(源数据)的引用直接复制给被调用对象的引用(作为新数据的引用),这种方式叫做“引用传递”,在这种方式下,被调用对象新数据的改变影响源数据内容,因为新数据和源数据的引用虽然不同但却指向同一数据对象,如类型对象的传递。 
        总的来说,简单概括Java中进行方法调用的时候传递参数时,遵循值传递的原则: 
        1)基本数据类型,传递的是数据的拷贝 
        2)引用数据类型,传递的是传递的引用地址的拷贝,而不是该对象本身 
//例1 
void method1(){ 
int x=0; 
this.change(x); 
System.out.println(x); 


void int change(int i){ 
i=1; 

        结果:x=0; 

//例2 
void method1(){ 
StringBuffer x=new StringBuffer("Hello"); 
this.change(x); 
System.out.println(x); 


void int change(StringBuffer i){ 
i.append(" world!"); 

        结果:x=Hello world; 

        ③String是一个比较特殊的数据类型,在Java中,String是一个类,但是他的传值却是采用“值传递”的方式。 
首先String不属于8种基本数据类型,String是一个对象。 
      因为对象的默认值是null,所以String的默认值也是null;但它又是一种非凡的对象,有其它对象没有的一些特性。 
      new String()和new String(“”)都是申明一个新的空字符串,是空串不是null; 
      String str=”kvill”; 
      String str=new String (“kvill”);的区别。 

      在这里,引入常量池这个简单的概念。 
      常量池(constant pool)指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。它包括了关于类、方法、接口等中的常量,也包括字符串常量。 
      例1: 
  String s0=”kvill”; 
  String s1=”kvill”; 
  String s2=”kv” + “ill”; 
  System.out.println( s0==s1 ); 
  System.out.println( s0==s2 ); 
  结果为: 
  true 
  true 

      首先,我们要知结果为道Java会确保一个字符串常量只有一个拷贝。 
       因为例子中的s0和s1中的”kvill”都是字符串常量,它们在编译期就被确定了,所以s0==s1为true;而”kv”和”ill”也都是字符串常量,当一个字符串由多个字符串常量连接而成时,它自己肯定也是字符串常量,所以s2也同样在编译期就被解析为一个字符串常量,所以s2也是常量池中”kvill”的一个引用。 
      所以我们得出s0==s1==s2; 
      用new String() 创建的字符串不是常量,不能在编译期就确定,所以new String() 创建的字符串不放入常量池中,它们有自己的地址空间。 
      例2: 
  String s0=”kvill”; 
  String s1=new String(”kvill”); 
  String s2=”kv” + new String(“ill”); 
  System.out.println( s0==s1 ); 
  System.out.println( s0==s2 ); 
  System.out.println( s1==s2 ); 
       结果为: 
  false 
  false 
  false 

3.4 面向对象的优点:

1. 便于在计算机程序中用类似的软件对象模拟现实世界中的实体

2. 隐藏信息

3. 增加重用性

试用类的步骤:

1. 定义类:使用关键字class

2. 创建类的对象:使用关键字new

3. 使用类的属性和方法:使用运算符“”

07__类的方法

定义类的方法:

1. 方法的名称

2. 方法返回值的类型

3. 方法的主体

方法的调用

变量作用域

面向对象编程

包:创建包,导入包

JAVADOC注释://  /***/  帮助文档

08——数组

1. Java中的数组:(1)数组中存储的数据称为数组中的元素

2)不管数组中含有多少个元素,该数组都只有一个名称,即数组名称

3)数组元素在数组里顺序排列编号,首元素编号为0,其他元素顺序编号,数组元素也称为元素下标,它标明了元素在数组中的位置,数组下标依次为0.1.2.3.4

4)数组中的每个元素都可以通过下标来访问,每个元素对应一个下标,它标明的元素在数组中的位置。

5)数组的大小(长度)可容纳元素的最大

1.2使用数据步骤:

1.声明数据 2.分配空间 3.赋值

一维数组可用一个循环动态初始化,或者用一个循环动态输出数组中的元素信息

1.3 排序 Arrays  sort()

09——字符串

1.1如何使用字符串

1)定义并初始化字符串

2)使用字符串,对字符串进行一些处理。

1.2字符串的长度 .length

1.3字符串比较

忽略大小写:equalsIqnoreCase

toLowerCase():转换字符串的英文字符为小写

toUpperCase():转换字符串的英文字符为大写

1.4字符串的连接

+“”+“”

1.5字符串的查询可提取

1.public int indexOf(int)  

2.public int indexOf(String value) 搜索第一个出现的字符ch

3.public int lastIndexOf(int ch)

4. public int lastIndexOf(String value) 搜索最后一个出现的字符ch

5.public String substring(int index) 提取从位置索引开始的字符串部分

6.public String substring(int beginindex,int endindex) 提取 begin end 之间的字符串部分

7. public String trim() 返回一个前后不含任何空格的调用字符串的副本

1.6带参的方法

1.定义带参数的方法、

2.调用带参的方法。

1.7 StringBuffer

1.声明StringBuffer对象并初始化

2.使用StringBuffer对象

JAVA常用包

Java.util 提供集合框架:collection类,日期,实用工具等

Java.lang 提供基础类

Java.io 提供系统的输入和输出

Java.sql 提供数据库操作支持。

JAVA语言的特点:

1. 简单易学

2. 提供丰富且强大的类库

3. 提供强大的网络支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值