java 基本语法 -----叶十一总结

6 篇文章 0 订阅

java 基本语法

Java的八种基本类型
  1. int
  2. float
  3. double
  4. short
  5. byte
  6. char
  7. boolean
  8. long
Java的内存分配机制

java程序在内存中主要有四个管理的部位:
栈(stack)
堆(heap)
静态域(static)
常量池(方法区)

局部变量、对象声明的引用,放在栈中
局部变量,例如一些int a=10,
如果是对象的话,等号左边是引用,右边是对象变量(在堆中)

new
通过new向堆内存申请空间
new出来的对象实例(包括类实例的成员变量)、数组都在堆里
静态域
static修饰的变量
类变量在类加载时候就会加载到静态域中,一旦加载,不会二次加载
在静态域中,所有的类实例变量都拥有访问和修改的权限
常量池
例如字符串常量;
注意:字符串常量和new一个字符串变量的区别;

String name="小敏敏";        //name 在栈中,***"小敏敏"*** 在常量池中
String name1=new String("小敏敏");     //name1在栈中,String()在堆中,***"小敏敏"*** 在常量池中

上述重点,name直接指向常量池
name1先指向堆中的String类实例,在通过类实例指向常量池

Java的引用数据类型

Class
interface
数组[]

Java默认类型

整数数值默认int
浮点默认double

Java的String连接问题

System.out.println(3+4+"HELLO");         //7HELLO
System.out.println("HELLO"+3+4)          //HELLO34
诸如此类 见第二节小练习

要点在于
在连接过程中,所有 ***+***一开始只是加法功能
直到遇到第一个String之后,+变成连接功能,后面所有+都是连接功能
如果我希望出现在后面的+是运算符加呢?

System.out.println("jhkk"+45+1+(5+6));

答案是:通过括号()破坏上述连接规则,实现加。

注意Java的位运算符
注意短路或、短路与
当 (1)&&(2)1为假,2不在计算
当(1)||(2),1为真,2不在计算

Java的instanceof运算符

1.自己类的实例、子类的实例都符合
2.注意看的是运行时环境,注意多态

Java的控制语句

基本跟C无区别
for
switch
while
do while
值得多留心的是foreach

int a[]=new int[10];
...
for(int i:a)
{...
}

注意i前一定要有一个类型声明。

break与continue

continue的有限制的goto
continue f1;
continue 和break都可以加标签
但是,注意各自的意义不变,break跳出整个循环,label标记跳出的是哪个循环,那层循环
continue跳出标记的这层循环的本次循环

   public static void main(String []args)
            {

                   int a=0;
                lable:   for(int i=0;i<10;i++)
                {for(int j=0;j<10;j++)
                {    System.out.println("("+i+","+j+")");
                    if (a==0)
                        continue lable;     //结束被label标记的那一层的本次循环,for循环变量能够自己加1

                }
                }
            }
            /结果是 :(0,0)
(1,0)
(2,0)
(3,0)
(4,0)
(5,0)
(6,0)
(7,0)
(8,0)
(9,0)
public static void main(String []args)
            {
                   int a=0;
                lable:   for(int i=0;i<10;i++)
                {for(int j=0;j<10;j++)
                {    System.out.println("("+i+","+j+")");
                    if (a==0)
                        break lable;     //结束被label标记的整个循环
                }
                }
            }
    //结果是(0,0)

java的对象数组

对象数组的每个值是一个引用
每个元素放在堆中
指向堆内的对象实例
图见老师ppt,我就不画了

关于数组:

  1. 数组是引用类型
  2. 可以有对象数组(内存不太一样)
  3. 数组声明和分配空间不一样,只有new的时候才分配空间,之后才可以访问数组
  4. 数组默认初始化,对象数组会隐式初始化(那么有个问题,这个类要有无参构造器)

Arrays类

数组工具类
也就是,提供了一堆的类方法,用来处理数组
Arrays.sort() //**后面有接口可以改变sort的顺序,到后面接口再写,默认从小到大
Arrays.equals()
Arrays.fill()
Arrays.binarysearch()

Java中常见的几种数据结构的话

ArrayList 数组,可变长的列表
vector 数组,可变长列表
HashMap
treeMap
等等

建议看看不用深究,可以现场查一下api

补充

Java和CPP的==
对于数值的话居然是可比较的,浮点居然可以等

int a=5;
float b=5.00f;
System.out.println(a==b);    //true

Java的对象比较算法

Object类中的equals方法
如果一个类,他的对象会涉及对象比较的话,建议覆盖Object类里的equals方法
这个就根据实际需求进行设计了,主要是根据属性进行比较
见hashcode()和多线程那道银行题

选择表达式

()?():()
这个式子跟if else的区别在于
if 、else不要求有返回值,但是这个式子,一定会有返回值
而且在这个返回值在编译时就产生了位置和类型
知道运行到这里才赋值
于是Java会给这两个值选择一个通用的大家都能用的类型,也就是最大类型
(a>b)?99.9:9
那么就会产生一个最大包容类型,此处为float
真正产生的是9.0或99.9’
即两个返回值必须归一位同一类型

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值