Java SE的复习1

原创 2017年09月11日 14:24:24

Java SE复习

一、     Java语言的特点:

1简单的、2面向对象的、3分布式的、4解释的、5健壮的、6安全的、7结构中立的、8可移植的、10高效的、11多线程的、12动态的

二、       1、Java的运行机制:

先编译后解释执行

如下图所示:

       2、JDK  JRE  JVM:

              JDK:开发Java的应用程序包,包括JRE、Java工具和Java类库

 

              JRE:Java运行时环境,Java运行的必须条件

 

              JVM:Java虚拟机,实现Java跨平台的转换器

三、       JDK配置:

安装完JDK之后,需要配置才可以使用:

       计算机-----》属性-----》高级系统设置-----》高级-----》环境变量----》系统变量-----》path----》双击打开,在变量值后面添加; C:\Program Files\Java\jdk1.6.0_10\bin----》确定即可

四、      Java两大核心机制:

1、Java虚拟机(JVM)

2、GC(垃圾回收机制):

Java不需要程序员回收无用内存,垃圾回收在 Java 程序运行过程中自动进行,程序员无法精确控制和干预。

       Java中的注释和javadoc命令

注释:用来说明某段代码的作用,某个类的用途,某个方法的功能…….

 

Java中注释分为三类:单行注释,多行注释,文本注释。

       单行注释:       //注释内容

 

       多行注释:             /*

                                          注释内容

                                          ……

                                          注释内容

                                   */

 

       文档注释:             /**

                                     *注释内容

                                     * ……

                                     *注释内容

                                    */

 

标识符命名规则:

Java语言中标示符必须以字母、下划线(_)、美元符号($)开头,后面可以跟上任意数目的字母、数字、下划线(_)、美元符号($)。此处的字母不仅仅是26个英文字母,还可以是中文字符、日文字符…….

       注意:标示符不能包括空格,不能使用java的关键字和保留字和直接量,标示符的长度不受限制。

由于Java采用的Unicode编码,因此Java的标示符可以使用Unicode能够表示的任意字符。Java语言严格区分大小写,因此Abc和abc是不用的标示符。

 

              直接量 3个:

                     Java中还有三个直接量也不能作为标示符: true false  null

六、基本数据类型:

Java语言是强类型,每一个表达式或者变量都有一个在编译时就确定好了的类型,所有变量需要先声明后使用。

Java中数据类型包括 基本数据类型 引用数据类型(复杂数据类型)两大类

 

 

七、数据类型转换:

              Java八种基本数据类型有两种转换方式:自动类型转换、强制类型转换

       boolean类型不可以和其他任何类型相互转换。

 

       强制类转换:

                     有时候需要将大类型的数据转换成小类型使用。Eg:需要将double类型的数据转换成int类型使用,此时可能损失精度,必须使用强制类型转换。注意,强制类型转换不可以乱用。

                  

                   例如:

                            doublea = 1.23;

                            intb = (int)a;

八、运算符:

         1.算术运算符:

                            +加

                           -减

*乘

/除

%取模(取余数)

         2.自增自减:

                            ++自增

                            --自减

                   举例:

int i = 5;

              intj = i++;// j=i  i=i+1 

              System.out.println("i="+i+"   j="+j);// i=6  j=5

              inti = 5;

              intj = ++i;// i=i+1  j=i

              System.out.println("i="+i+"   j="+j);// i=6  j=6

       3.关系运算符:

            >  >=    <    <=  ==  !=                                  

       大于 大于等于   小于    小于等于  等于   不等

 

       4.赋值运算符:=

          注意将 = 和 ==区分开来。= 是赋值    == 是判断是否相等

 

九、程序的三种结构:

顺序结构:自上而下的逐行执行代码。

分之结构:根据逻辑判断,有选择的执行其中某部分代码。

循环结构:根据逻辑判断,重复执行某个代码块。

1. 顺序结构:代码块中没有用if、switch、for、while等的,都是顺序结构

2.分支结构:if单分支

                 语法:

                        if(表达式){

                               代码块;

}

 

二路分支(双分支)

                 语法:

              if(表达式){

                     代码块1;

}else{

       代码块2;

}

       多路分支:

语法:

              if(表达式1){

                     代码块1;

}elseif(表达式2){

       代码块2;

}else if(表达式3){

       代码块3;

}

…….

…….//中间可以有n个 else if

……..

else{//最后这个else可有可无

       代码块n;

}

              Switch分支:

                     Switch是多分支语句,表达式如下:

              switch(表达式){

              case 值1:代码块1;

                             break;     //break不是必须的,根据情况而定

              case 值2:代码块2;

                             break;

              ……

              …...

              ……

              default:代码块n;  //default可有可无

}

              3.循环结构:

                  while循环:

语法:

      while(循环条件){

             代码块/循环体;

}

                  do…while循环:

语法:

      do{

             代码块/循环体;

}while(循环条件);

 

 

 

                 for循环:

语法:

      for(表达式1;表达式2;表达式3){

             循环体;

}

说明:

      表达式1:初始化变量

      表达式2:循环条件

      表达式3:循环增量

              

                            案例三: 输出1900--2015之间所有的闰年

publicclass Test1{

         public static void main(String[] args){

                   for(inti=1900;i<=2015;i++){

                            if((i%4==0&&i%100!=0)||(i%400==0)){

                                     System.out.println(i);

                            }

                   }

         }

}

循环的嵌套:

            循环之间可以相互嵌套,比如九九乘法表的打印,星号金字塔的打印。

                   例子:星号金字塔

              public class Test1{

                            publicstatic void main(String[] args){

                            for(inti=1;i<=5;i++){

                                     for(intj=1;j<=5-i;j++){

                                              System.out.print("");

                            }

·       

                                     for(int k=1;k<=2*i-1;k++){

                                              System.out.print("*");

                            }

                           

                            System.out.println();

                   }

         }

}

       循环的控制 break和continue:

break语句除了可以用在switch语句中,还可以用在循环体中。在循环体中遇见break语句,立即结束循环,跳到循环外,执行循环结构后面的语句。break语句用于结束整个循环。

public static void main(String[] args){

                   for(inti=1;i<=5;i++){       

                            if(i==3){

                                     break;

                            }

                            System.out.println(i);

                  }

         }

}

结果1,2

continue语句用于结束本次循环,即在循环体中遇见continue语句,则循环体中continue语句后面的语句不会执行,接着进行下一次循环的判定。

public class Test1{

         public staticvoid main(String[] args){

                   for(inti=1;i<=5;i++){       

                            if(i==3){

                                     continue;

                            }

                            System.out.println(i);

                   }

         }

}

结果:1,2,4,5

 

 

十、数组:

       数组的定义:类型[] 数组名;//常用         int[]a; double[] b;char[] c

         类型 数组名[];// int a[](常用)

 

1.一维数组

int[] a = {1,2,3,4,5};

2.  多维数组

int[][] a;

a = new int[2][3];//2代表a中有两个一维数组  3代表一维数组中有3个值

 

 

 

数组的初始化:

静态:

int[]a = {1,2,3,4,5};

动态:

int[] a = new int[5];

         3.访问数组元素:

                   下标的理解:

数组中每个元素都有一个下标,下标从0开始:访问数组元素可以根据数组下标。

         4.数组的应用:

个人认为,数组应用中最经典的是冒泡排序,我列举以下两个案例(从大到小和从小到大)

            从大到小:(标红为核心重点)

public class Test1{

     publicstatic void main(String[] args){

              int[]a = {55,23,89,64,85};

              //从大到小 冒泡排序

              for(int i = 0;i<a.length-1;i++){

                       for(intj=0;j<a.length-1;j++){

                                 if(a[j]<a[j+1]){

                                          //交换

                                          int x= a[j];

                                          a[j] =a[j+1];

                                          a[j+1]= x;

                                 }

                       }

              }

 

              //输出数组

              for(inti=0;i<=a.length-1;i++){

                       System.out.print(a[i]+"  ");

              }

              System.out.println();

     }

}

从小到大:

public class Test1{

     publicstatic void main(String[] args){

              int[]a = {55,23,89,64,85};

              //从小到大 冒泡排序

              for(int i = 0;i<a.length-1;i++){

                       for(intj=0;j<a.length-1;j++){

                                 if(a[j]>a[j+1]){

                                          //交换

                                          int x= a[j];

                                          a[j] =a[j+1];

                                          a[j+1]= x;

                                 }

                       }

              }

              //输出数组

              for(inti=0;i<=a.length-1;i++){

                       System.out.print(a[i]+"  ");

              }

              System.out.println();

     }

}

5.在数组中有一个重要的概念,栈和堆:

       栈和堆是分析数组内存的重要概念以下图为例

版权声明:本文为博主原创文章,未经博主允许不得转载。

java SE基础练习题

  • 2009年09月15日 16:55
  • 85KB
  • 下载

Java SE考试--编程题总结

Java SE考试--编程题总结
  • javaniuniu
  • javaniuniu
  • 2016年08月10日 11:04
  • 1453

Java(1):Java SE疯狂复习第1篇

好好复习。Java SE的重难点笔记(1)。
  • qcyfred
  • qcyfred
  • 2016年12月21日 15:51
  • 325

JAVA SE 学习笔记

J2SE基础学习笔记,温故知新于2016/12/5.
  • conanswp
  • conanswp
  • 2016年02月24日 22:07
  • 1556

学完Java SE之后学什么好?

学完Java SE之后学什么好?    我觉得学习j2ee一定要循序渐进,千万不要太急了。把java基础打牢一点,再牢一点。各位,你们在后面学习什么struts,hibernate,spring,...
  • kangqianshengshi
  • kangqianshengshi
  • 2015年03月02日 16:39
  • 2124

面试题集——Java之Java SE

最近忙着复习,之前好多东西都忘了,也有一些知道,但到真正要自己说的时候又不一定能流利说出口,所以,在牛客网看到了一位师兄提出的面试可能问题,就试着按自己知道的回答回答,不知道的那就赶紧查查 一、J2...
  • a327369238
  • a327369238
  • 2015年10月07日 15:55
  • 1496

Java(1):Java SE疯狂复习第1篇

好好复习。Java SE的重难点笔记(1)。
  • qcyfred
  • qcyfred
  • 2016年12月21日 15:51
  • 325

《写给大忙人看的java SE8》笔记 -- 1. lambda表达式

函数式接口 只含有一个抽象方法的接口,称为函数式接口。lambda表达式可以赋值并且仅可以赋值给函数式接口的变量。实际上编译器往往需要根据函数式接口推断lambda表达式的参数类型和返回值,比如:Co...
  • groovy2007
  • groovy2007
  • 2015年07月29日 22:04
  • 1026

java se web向需要的资料整理1

首先,j2se 建议用editplus来写(因为本身不会很难) 1.思想:封装继承多态 单纯从简单的角度来说:封装就是getset的爪哇豆子。。//口胡的。。其实是用java语言编写的可重用的软件...
  • fatfatefat
  • fatfatefat
  • 2012年01月17日 20:37
  • 374

Java SE 14th IO (1)

Java SE 14th day:Java IO(上) 1、知识点 Java基础部分有四个部分是必须掌握的: 1、面向对象,包括各个概念及使用 2、Java类集 3、Java IO,如果是自学的人员,...
  • li450126014
  • li450126014
  • 2014年02月04日 17:45
  • 407
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java SE的复习1
举报原因:
原因补充:

(最多只允许输入30个字)