Java day1

//这里最好大写,因为在JAVA的编程规范里面,类的名字首字母要大写,而文件的名字要跟类名保持一致                                                        
//这里是不符合规定的,这里正确的应该是 文件名为Hello.java  类名应该叫public class Hello
//下面是第一个java应用程序
/*
    public class hello{
        public static void main(String args[])
         {
               int i=0;
               for(i=0;i<3;i++)
              {
                  System.out.println("hello java");
              }    
         }
   
     }
 */


//C里面的数据类型
//基本数据类 char  unsigned char  short unsigned short  int unsigned int  long  float double   
//指针  
  
//java跟C语言很类似,他也分为两种
//基本数据类型:char(2字节) short(2字节) int(4字节) long(8字节)  float(4字节) double(8字节) byte(1字节) boolean(1字节)
//引用数据类型:数组,类,接口,NULL
//值得注意的是,在C语言里面,char是一字节,但是在java里面它是两个字节。这是因为在java里面它里面的编码是unicode。
//它用一个char可以表示英文,也可以表示汉字等等。而我们C语言的char只能表示英文字母啊,标点符号啊。
//java里面没有指针  

    public class hello
     {
         public static void main(String args[])
         {
             //由于java里面没有指针,所以你在C语言里面的那句 int *p=malloc(10*sizeof(int)) 用下面的语句代替
            int p[]=new int[10]; 
             //注意你用下面这种方式定义一个数组也是错的,你只能用上面的那个方式定义
             //char a[100];
             char a[]=new char[100];
             //为什么会有这种错误,因为在C语言里面,int *p=malloc(10*sizeof(int))
             //这个P变量是放在栈里面的,
             //但是java用的语句是这句话 int p[]=new int[10]
             //这里也是一样的 p是放到栈里面的,但是new出来的空间是放在堆里面的
             //char str[100] 这个数组是放到栈里面的,但是在JAVA里面它是放在char str[]=new char[100]
             //这里str是放在栈里面的,而new出来的空间是放在堆里面的。在JAVA里面所有的数组都是引用数据类型。
             //str只是某一块堆空间的地址,它引用的只是这块堆的空间。
            //你还可以用int p2[]={1,2,3,4};这叫静态分配。这句话在C语言和java有什么区别呢
            //在C语言里面 你int p2[]={1,2,3,4};它里面的数据放到栈里。  
            //在JAVA里面,int p2[]={1,2,3,4};这p2还是放到栈里面,但是这个1 2 3 4放到堆里面
            //在JAVA里面,它里面的数组永远都是放到堆里面的。栈里面只放p2这个变量,它里面存放的是一个地址值,这个的地址指向一个堆空间
            //在JAVA里面,你如果定义一个字符串,不能用char str[]="abc"。而要用String这个类。 
            //除了一般数据类型之外,其他的都是引用数据类型。所谓引用数据类型,表明变量所引用的空间在堆里。所以这个abc也在堆里面
             String st="abc";
            //大家有没有觉得奇怪,我在C语言中malloc之后,一般来说我们要free掉它。
             //但是在我们JAVA里面它没有释放操作,怎么回事呢,它会帮我们自动释放,什么时候会帮我们自动释放。在我们JAVA里面如果想要它自动释放的话,如下
             //int a[]=new int[10]
             //a=NULL;就可以了。JAVA里面的垃圾回收机制就会把那段这块空间给你释放掉
             //但有一种情况,如下
             //int b[]=a;
             //这样只有当a=NULL和b=NULL它才会释放,说白了就是只有没有人引用那段空间才会被释放。
     
 
            //数据类型转换:自动转换:数据不丢失的前提下可以自动转换
           //                        注意:整数默认是int,有小数时默认是double
             //              强制转换:
            //              比如你float f=3.14你默认是double类型的
            //              但是你用一个float类型去装它。是装不下的,所以只能
            //              强制类型转换
            //              所以这里float f=(float)3.14;或float f=3.14f;
            //              对于整数,编译器会帮我们判断它的范围。
            //              比如说short b=4;上面说的整数默认是int类型的
            //              但是这里4在short范围了。如果超过了这个范围就会报错
            //              但是你short b=4;s=s+1之后就会报错。因为对于byte
            //              short的运算,为了保证精度,会自动转换为int。
                                                                           

}

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值