`
hao861002
  • 浏览: 87089 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java复习第二天

阅读更多
                                           
1、Java的数据类型
  (1)简单类型 --- 8种有符号的数据类型
       a) 整型
         byte       1字节 8位       -128到127
        short      2字节 16位      -2^15到2^15-1  -32768 到 32767
        int        4字节 32位      -2^31到2^31-1  -2147483648 到 2147483647    整型值存放,正数存放原码(二进制码),负数则存放补码(原码按位取反末位加一)。
         long       8字节 64位      -2^63到2^63-1  long a = 40000l;  //在数字的结尾加“l”,表示long类型的字面值
       b) 浮点类型
          float      4字节 32位       float a = 1.3f;
        double     8字节 64位       double a = 1.3;
        double和long比较,double 表示的数值要大,因为有科学计数法
          float a = 1.3;  //error 会造成精度丢失,强转float a = (float)1.3;或者float a = 1.3f;
       c) 字符类型
          char       2字节 16位
       d) 布尔型
          boolean    false/true    //Java中false与0不能转换
         
       自动类型提升:
           a 运算符 b
         a和b中有一个是double ,  结果就是double     
         a和b中有一个是float ,  结果就是float
         a和b中有一个是long ,  结果就是long
         除以上之外的情况,结果都是int 
        
       char是无符号的16位整数,字面值必须用单引号括起来; ‘a’
       String 是类,一个String的字符串是一个对象,非原始数据类型;
       在字符串中使用"+",表示字符串的连接,系统重载了这个运算符
       char类型也可以用通用转译字符,但是不能用ASCII码。可以用“\u0000”(十六进制)这种格式,因为char型中使用的是unicode编码方式。
       char c1 = 'a';
      char c2 = 97;
      char c3 ='\u0061';  //一个字节用2个十六进制的数字表示
      
       整数除0有异常,double除0没有异常
      
  (2)对象类型       
 
2、java中的运算符(java的运算符的优先级和结合性和c++相同)

   *** System.out.println(3/2)  按整型计算 得1 ***
  
   byte a = 1;
   a=a+2;    //不合法,自动类型提升,赋值丢失精度
   a += 2 ;  //不会发生自动类型提升的,合法
   a++ ;     //不会发生自动类型提升的
  
   1) >>=  前面是零补零,前面是一补一;   右移一位比除以2效率高
   2) >>>=  无符号右移(强制右移都会移进零),
    >>=和>>>=对于负数不一样
      正数:右移n位等于除以2的n次方
      负数:变成正数。
   3) &&   短路与,前面为假,表达式为假,后面的操作不会进行,& 非短路运算符,会对所有条件进行判断。
   例:  int a = 4;
         if(a<3&(b=a)==0)   b赋值
         if(a<3&&(b=a)==0)  b不赋值 
   4) ||   短路或,前面为真,表达式为真,后面的操作不会进行,| 会对所有条件进行判断。
   5)instanceof,是用于判断一个对象是否属于某个类型
   6)java中的求余运算符“%”可以对两个实型变量求余 5%2=1
  
3、流程控制
(1)控制流
    if()
    if()….else
    if()…..else if()….else

    注意:else只是和其上面的同层的最近的if()来配对。

(2)switch(s){
         case 'a':……..
         case 1:……break;
         default:
         …………
     }
    注意:switch()内数据类型为byte short char int类型,只有以上四种类型的才可以在switch()中使用。
          case块中不加break时顺序执行下面的语句。  
         
4、循环语句
   for(int i=0;i<n;i++){}  ---- 确定循环
   while(){}               ---- 循环0或多次
   do{} while();-----------注意加分号   循环1或多次      
  
5、语法  
  在main方法中要使用全局变量或调用其他方法时,要求全局变量和方法要有static修饰
  命令行参数  java Class a b 
  args[0] = a
  args[0] = b
  字符串转成int类型  int i = Integer.parseInt(a); 
 
6、数组
  内存中的连续空间
  数组是一次性定义多个相同类型的变量 
  Java中一个数组就是一个对象,有属性,没有方法
 
  int[] a; //定义一个数组,变量名就是指向数组首地址的指针
  a=new int[10]; //为数组分配空间
  a.length;  //得到数组的长度     
  数组创建后有初始值:数字类型为0   布尔类型为false  引用类型为null
  String[] 默认值 null
 
  初始化、创建、和声明在同一时间
      int[] i = {0,1};   //显示初始化
      int[] i = new int[]{0,1};  //注意:这样显示的初始化的时候,new int[] 中括号中必须是空的,不能填数字
      Car[] c = {new Car(),new Car()};

  数组拷贝
  System.arrayCopy(Object src, int srcPos, Object dest, int destPos, int length);
  src源数组,srcPos从第几位开始拷贝(数组下标,从0开始),dest目标数组,destPos目标数组放置的起始位置,length,表示要拷贝的长度。拷贝一个数组到另一个数组。
 
  多维数组
   1) 有效定义
      int[][] i1 = new int[2][3]; (同时给定一维,二维的空间)
      int[][] i2 = new int[2][]; (给定一维的空间,二维空间待定,不规则的二维数组)
      i2[0] = new int[2],i2[1] = new int[3];
    * C++中 int[][] =new int[][3];有效
   2) 无效定义
      int[][] i1 = new int[][3];
   3) 数组长度 ------------数组的属性length(在二维数组中这个属性只代表第一维的长度)
      int[] i = new int[5];
      int len = i.length;  //len = 5;
      
      Student[][] st = new Student[4][6];
      len = st.length;      //len = 4;
      len = st[0].length;   //len = 6;
     
练习:(1)数组元素的偏移
             在使用数组的时候,通常使用一个辅助变量纪录数组中的有效元素的个数,还表示下一个可插入位置的下标
      (2)数组元素的轮换
           偶数个球队足球比赛,每个队和每个队有且只有一场比赛
           把数字按"U"字型摆放,左边最上边的数字不变,其他数字按逆时针旋转   
      (3)有一个奇阶的方阵,填如数字,使得
           第一个数一定放在第一行的最中间,第二个放在右上方,行越界,放在此列的另一侧,列越界放在此行的另一侧
           行列都越界的时候,退回来,放在原来的数字下边,当要放入的地方有数字的时候,退回来,放在原来的数字下边
          
(1)
public class ArrayInsertDelete{
     static int[] a={1,2,3,4,5,6};
   static int index=6;
   static void insert(int pos,int value){
     if (index==a.length) expand();
     for(int i=index;i>pos;i--){
      a[i]=a[i-1];
     }
     a[pos]=value;
         index++;
   }
   static void delete(int pos){
     index--;
     for(int i=pos;i<index;i++){
       a[i]=a[i+1];
     }
   }
   static void expand(){
     int[] b=new int[a.length*2];
     System.arraycopy(a,0,b,0,a.length);
     a=b;
   }
   static void print(){
     for(int i=0;i<index;i++){
        System.out.print(a[i]+"\t");
     }
     System.out.println();
   }

   public static void main(String[] args){
     print();
     insert(2,7); //{ 1,2,7,3,4,5,6}
      print();
     delete(4);   //{1,2,7,3,5,6}
     print();
  }

}          
  
分享到:
评论

相关推荐

    在达内学习java的笔记

    2. **Java复习第二天**:可能深入到控制流程,包括条件语句(if...else, switch)和循环(for, while, do...while),这是编写任何程序的基础。 3. **Java复习第三天**:可能会讲解数组,这是存储和处理大量数据的...

    Java学习100天速成课件

    首先,我们从【第二章 Java语言的基础知识.ppt】开始,这部分内容会讲解Java的基本语法,包括变量、数据类型、运算符、控制结构(如if语句、for循环、while循环)以及方法的定义和调用。学习者将在此阶段掌握编写...

    Java期末重点复习(1)

    免费哒!!!哈哈哈反正写都写了,...至于第二辑,暂定是想和大家讨论下接口类、匿名内部类和Lambda表达式、泛型、流和Collection。 嗯,然后几次复习的内容做完了,我就要着手开始做课设了,到时候更新会更慢......

    java视频教程_黑马Java零基础辅导班[第一期]第2天课件源码

    课程内容可能是以视频的形式呈现,涵盖了第一天学习后的第二天课程资料,包括课件、源代码以及相关的练习。 【描述】"java视频教程_黑马Java零基础辅导班[第一期]第2天课件源码" 暗示这个教程是系列教程的一部分,...

    Java复习编程题30.pdf

    第四章的第二个问题中,`SelectSort`类的`selectSort()`方法实现了一个选择排序算法,对给定的整数数组进行降序排列。选择排序的基本思想是在未排序的序列中找到最大(或最小)元素,存放到排序序列的起始位置,...

    Java复习题

    ### Java复习知识点解析 #### 一、选择题 1. **面向对象的特征** - **选项分析**: - A) 重载:这是一个方法级别的概念,并不是面向对象的核心特征。 - B) 重写:虽然与面向对象有关,但其核心在于继承关系中的...

    java视频教程_黑马Java零基础辅导班[第二期]11天课件源码

    《Java编程学习之旅:黑马Java零基础辅导班[第二期]11天课件源码解析》 在Java开发的世界里,扎实的基础是每一位程序员的基石。本篇将围绕"java视频教程_黑马Java零基础辅导班[第二期]11天课件源码"这一主题,深入...

    (完整版)Java复习编程题30.docx

    首先,初始化一个二维数组 `yanghui`,然后通过两层嵌套循环填充数组,遵循杨辉三角的规则:每一行的第一个和最后一个数字是1,中间的数字等于上一行相邻两个数字之和。最后,遍历数组并打印出杨辉三角形。这个例子...

    Teach.yourself.JAVA.in.21Days

    #### 第二部分:高级主题 - **第15-21天**:涵盖Java中的高级主题和技术,帮助读者进一步提升编程能力。 - 集合框架与泛型。 - 输入/输出(I/O)操作。 - 多线程编程。 - 图形用户界面(GUI)开发。 - 网络编程...

    smbms超市订单管理系统(Java课设源码).zip

    2022-10-31:第二天。登录注销功能,修改密码功能,用户管理部分实现 2022-11-01:第三天。完成整个用户管理模块。学习到了小黄鸭调试法 —— 将自己的逻辑重新复述一遍,在此过程中找到漏洞 2022-11-02:第四天。...

    21天学java part4

    本章节作为《21天学Java》系列教程的第四部分,主要面向已有一定Java基础知识的学习者。通过前面三个阶段的学习,读者已经掌握了Java语言的基础语法、基本编程技巧以及简单的程序设计方法。在这一部分,我们将进一步...

    java develop

    #### 第二周(11月14日—11月18日):JavaScript/jQuery - **学习内容**:JavaScript是一种广泛使用的编程语言,常用于实现网页交互效果。jQuery则是基于JavaScript的一个库,简化了HTML文档遍历、事件处理等操作。...

    21天学通JAVA-WEB开发电子教案(PPT)

    【文件名称列表】虽然未提供具体的文件名,但通常这样的教程会包含多个PPT文件,每个文件可能对应课程的不同章节,如"第一天:Java语言基础"、"第二天:Servlet介绍"、"第三天:JSP基本语法"等,逐步深入,逐步引导...

    java代码-编程实现,一个只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,有多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃了一个,以后每天早上都吃掉前一天剩下的一半零一个,第十天早上,发现只剩下一个桃子,请问猴子第一天一共摘了多少个桃子?

    在Java中,我们可以使用循环结构来模拟猴子吃桃的过程,从第十天开始反推到第一天。以下是一个详细的解释和代码实现: 首先,我们需要知道的是,第n天早晨猴子剩下的桃子数量为`n天桃子数 = (n-1天桃子数 / 2) + 1`...

    hibernate达内五天复习笔记.pdf

    - 第二天可能涉及了更具体的映射配置和实例,如XML配置文件或注解方式的映射。 - 第三天可能深入到对象状态的转换和生命周期管理,以及如何处理事务。 - 第四天可能讲解了HQL的使用,包括查询、更新、删除等操作...

    30天学通Java项目案例开发

    ### 30天学通Java项目案例开发 #### 一、概述 本书《30天学通Java项目案例开发》是一本旨在通过实践项目来帮助读者快速掌握Java Web开发技能的专业教程。它由资深Java EE独立软件开发工程师吴亚峰撰写,吴亚峰拥有...

    Java 简单的日历生成程序

    - **星期的计算**:对于给定日期,我们需要知道它是该月的第几天以及是星期几。这可以通过对日期进行加减运算实现,利用`Calendar.DAY_OF_MONTH`和`Calendar.DAY_OF_WEEK`字段。 3. **异常处理**: 在处理用户...

    传智播客崔希凡JavaWeb-day16-mysql第二天-全部资料

    在本压缩包“传智播客崔希凡JavaWeb-day16-mysql第二天-全部资料”中,包含的是一系列与JavaWeb开发和MySQL数据库相关的学习资料,特别适合那些正在学习或已经学习过崔希凡老师JavaWeb课程的学员。这个资源集提供了...

    Java学习路线图.pdf

    第二部分主要关注J2EE(Java 2 Enterprise Edition)框架的学习,总时长27天。首先,学员会花12天学习DRP(Distribution Resource Planning)项目,这涉及到企业级应用的开发。接下来,分别用6天的时间学习Struts、...

Global site tag (gtag.js) - Google Analytics