走进Java

走进Java

循环语句

if…else…和三元运算符的区别

      1.共同点:都是针对两种情况进行判断,都有表达式
      2.不同点:if...else...范围大,不仅可以操作数据值,还可以用操作输出语句去完成逻辑判断;
                     而三元运算符仅是运算符,操作两个具体的数据值,不能输出语句;
                     所以能用三元运算符实现的一定可以用if else, if else 能实现的三元不一定可以.

if…else…嵌套(不推荐使用)

         if(表达式1){
                    if(表达式2){
                           语句1;
                    }else{
                           语句2;
                    }
         }else{
                      if(表达式3){
                            语句3;
                      }else{
                            语句4;
                      }
         }

流程控制语句之switch(考点很多)

     格式:
      switch(变量名){
      case 值1:
                  语句1;
                  break;
                        ...
                 default:
                     语句n;
                     break;   
      }
      注意事项:
                     1.case语句只能是常量(java语言中,强语言类型)
                        但是在前端jsp中,switch语句中case可以是常量也可以是变量
                     2.在case语句中,如果一旦匹配成功一定要书写break,否则会造成穿透
                     3.default 语句可以在任何位置,不影响,如果在句末,break可以省略(但是不建议)
                        如果在句中的话,break是不可以省略的,会造成穿透
                     4.switch语句结束条件:   语句碰到break结束或者默认语句结束(执行完毕)
        *面试题
                    switch语句后面的变量名可以是什么类型的变量名?
                              本身是可以跟基本数据类型:byte,short,int,char,在JDK5 以后可以跟枚举类型(引用类型)
                              JDK7以后可以跟字符串String类型 .  
                             /* String是Java开发中特别重要的一个类,里面功能开发中使用的特别多*/          

循环结构语句

       for循环语句(明确范围使用for循环)
            格式:
                    for(初始化语句;条件表达式;控制体语句){
                             循环体语句;(实际开发中逻辑判断)
				}
				求和,求阶乘的两个思想:先定义最终变量,然后for循环语句,最后输出结果变量值
				统计思想:先定义结果变量,然后在循环体语句中加入变量自增(++)
       while循环语句
              格式:
                     初始化语句;
                        while(条件表达式){
									循环体语句;
									控制体语句;
                           } 

		for和while的区别;
		   从用法格式上看:
		           两个分别有自己格式,while循环体不要忽略控制体语句
		   是否明确循环次数(开发中优先使用for)
		           如果有明确的循环次数则使用for循环
		           如果不明确循环次数则使用while    
		   从内存角度考虑
		            for循环更优一些,for循环结束,里面的局部变量也就是方法定义中的变量就被及时释放空间
		            whlie循环结束之后,依然能够去访问那个变量比较消耗空间

for循环嵌套(内层for循环是外层for循环的循环体)

        格式:
               for(初始语句1;表达式1;控制体语句1){
							for(初始语句;表达式;控制体语句){
							  循环体语句.....
							}
					}

跳转控制语句

     break 结束中断,不能单独使用,一般在循环体语句loop或者switch中使用,不能超过这个范围
     continue 跳转控制语句,结束当前循环,立即进入下一循环(不能单独使用,在循环中用)
     return 跳转控制语句,在Java中跟定义方法有关,跟有返回值类型的方法有关(很少单独使用)
     return在实际开发中和方法息息相关

java中的方法

        方法:将一个功能抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能,当
                          我们需要这个功能的时候,就可以去调用,这样既实现了代码的复用性,也解决了
                          代码的冗余度
        方法与方法是平级关系                  
	    方法一:有返回值类型的方法定义
	              权限修饰符  static 返回值类型 方法名(参数类型1 参数名1,....){
													逻辑操作
													return 结果        (返回值类型需和结果类型保持一致)
												}
                     有具体返回值的调用有1.单独调用(没有数据结果)
                                                         2.输出调用
                                                         3.赋值调用
          方法一注意事项:
                  1.方法与方法是平级关系,不能再一个方法中定义另一个方法
                  2.定义方法时,返回值类型最终和return语句结果保持一致
                  3.注意括号和分号
                  4.定义方法时,形参类型必须带上
                  5.调用方法时,实参要么定义,要么键盘录入,不需要再调用方法里再去书写数据类型
		方法二:没有返回值类型的方法定义
		          权限修饰符  static void 方法名(参数类型1 参数名1,......){
														逻辑操作
														没有return关键字
														   System.out.println("XXXX");
													} 

方法重载(overLoad)

		 在同一个类中,允许存在一个以上同名方法,只是它们的参数或者参数类型不同即可
		 多个方法,方法名一致,参数列表不同,与返回值无关
		 目的就是提高代码(方法)的扩展性,同一方法可以传递不同的类型,完成具体的逻辑操作

数组

           数组就是一个可以存储同一种数据类型多个元素的容器,这种类型可以是基本数类型也可以是引用数据类型
           Jvm内存分配:
                栈:跟方法有关,存储局部变量  堆:和new有关,开辟新的地址    方法区:字节码文件
                寄存器:和系统cpu有关    本地方法区:和系统有关
           创建数组:对数组进行初始化
                  动态初始化:给定数组长度,系统默认分配元素值
                       数据类型[] 数组名称 = new  数据类型[数组长度]
                       数据类型 数组名称[] = new  数据类型[数组长度]
                  
                   静态初始化:给定数组元素,长度系统给定
                        数据类型[] 数组名称 = new  数据类型[]{元素1....}
                       数据类型 数组名称[] = new  数据类型[]{元素1.....}
                       简写:
                       数据类型[] 数组名称 = {元素1.....}
                       数据类型  数组名称[]= {元素1.....}

				  数组名称.length-----获取数组长度
				  数组的应用:需要掌握遍历,最值,基本元素查找.

异常

          程序出问题JDK提供java.lang.Throuable----->Exception类的子类.RuntineException:运行时期异常
               error:严重问题---->内存溢出
               见到异常应该总结出来,什么原因导致异常,这个异常的解决方案是什么
               如:
                     数组以及String类都会出现一种"角标越界"
                     *** 角标异常----->检查代码,控制索引值
                     *** 空指针异常----->非空判断

数组高级排序之冒泡排序(属排序算法)

      冒泡排序的思想:
                                两两比较,较大值往后放,第一次比较完毕最大值出现在最大索引处,
                                依次这样比较,最终就可以得到一个排序好的数组,
       规律:两两比较,较大值往后放;第一次有0个不比,第二次有一个不比....,每比一次,减少一次比较
               比较的次数:  数组长度-1=比较次数(如:个元素,就比较4次)

形式参数的问题

      形参假如是基本数据类型,形参的改变不影响实际参数,局部变量的声明周期(方法定义中或者方法声明上)
      局部变量是随着方法的调用开始而存在,随着方法的调用结束而消失(String类是常用类中的重点),结论和基本数据类型一样

     形参假如是引用数据类型,形参的改变是直接影响实际参数,因为引用数据类型(数组.类,接口)是一种空间地址进行传递
     形参是引用类型(如果是类),调用这个方法,实际参数传递需要当前类的具体对象(创建类对象new)

面向对象

       面向对象基于面向过程,面向过程针对具体的需求(研发)
       面向对象:生活处处皆对象
       面向对象的思想特点:
                                        1.更符合现实生活中的思想行为
                                        2.让复杂的事情简单化
                                        3.角色发生改变,从执行者(面向过程)变成了指挥者(面向对象)
       面向对象的设计理念:
                                        不断的创建对象,使用对象,指挥对象做事情(面向对象的宗旨)  
       面向对象    名词提取法"UML"----->将名词提取------->"事物"------->"类"
       什么是类?什么是对象?
       类: 
             就是能够描述现实世界事物的一组事物的属性和行为的集合,Java语言中最基本的单元
             类和显示世界事物是一一对应的关系
                     属性------>在代码中就是成员变量,而成员变量是在类中方法外
                     行为------>在代码中就是成员方法
       对象:
             描述具体事物(具体事物的具体属性和行为)
             描述具体事物在代码中体现出来的具体事物----->创建类对象的格式
             类名   对象名 = new  类名();
             对象名.成员变量 = 值;(根据成员变量的类型赋值)        访问成员变量,赋值
             对象名.方法名():         访问我们自己定义的成员方法,去使用它展示数据或者实现具体的业务需求   
       在一个类中需要访问令一个类,就必须创建这个类对象
                          类名.对象名 = new 类名();

局部变量和成员变量的区别

        1.书写位置不同:
                   局部变量:在方法定义中或者方法声明上
                   成员变量:在类中方法外
        2.内存位置不同:
                   局部变量:在栈内存中----->跟方法有关(方法进栈)
                   成员变量:在堆内存中----->跟对象有关(new)
        3.生命周期不同:
                    局部变量:随着方法调用而存在,随着方法调用结束而消失
                    成员变量:随着对象创建而存在,等待垃圾回收器空闲时回收消失,不会立即释放
        4.初始化值不同:
                     局部变量:在使用之前必须进行初始化,否则会报错
                     成员变量:跟对象有关,存在系统默认初始化(String null,int 0)          

匿名对象

         顾名思义就是没有名字的对象       
          格式:
                  类名 对象名 = new 类名()
                  new  类名().成员变量 =赋值
                  new 类名().成员方法;
                  特点:  1>可以作为"参数传递"   2>实际用的过程,匿名对象不要多次,一般使用一次即可,使用完立即被回收                      
                  new  类名();        

封装

         private:私有的,修饰成员变量或成员方法只能本类访问(为了保证数据安全)    
                   属性私有化
                   特点:
                          可以修饰成员变量/成员方法,只能在本类中访问,外界类不能直接访问;但是可以间接通过公共方法访问
                          setXXX()/getXXX()来赋值和获取值
                          实际开发中:只要描述一个事物的属性,全部私有

this关键字

          this的含义:代表当前类对象的地址值引用
          加入this    标准类的写法
          JavaBean规范:
                       1>类是具体类  class类名{}
                       2>类是属性必须私有化
                       3>类中必须提供setXXX()/getXXX() 对成员变量的公共的访问方法(赋值/获取值)

           在标准类(属性私有化,对外提供公共访问setXXX()/getXXX(),给成员变量赋值形参必须见名知已意)
           局部变量和成员变量名一致,局部变量会隐藏成员变量,导致变量无法赋值,Java提供了关键字 this
           提供this 区分成员变量和局部变量
                          this 代表当前类对象的地址值引用
                          this.变量名:访问的本类的成员变量名
               return this  的 this 可以省略           
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值