黑马程序员_Java基础知识总结

时间:2020-12-30 20:03:26
---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

关于java基础知识,相信每一个人都能很熟练的掌握,我就关于基础知识的一点本人觉得像对比较重要的东西列出来。
首先我觉得关于写代码,最重要的不是会不会写代码,而是思想,也就是实现功能的思路,关于思路,我觉得一下几点比较重要:
1,明确需求。我要做什么?  
2,分析思路。我要怎么做?1,2,3。  
3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。 
4,代码实现。用具体的java语言代码把思路体现出来



Java的三种技术架构:  
JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发; 
JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础; 
JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序;



1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。 
2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。 
3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。
 
环境变量的配置:     
1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk                    path=%JAVA_HOME%\bin
2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin 
特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。
 
classpath的配置: 
1):永久配置方式:classpath=.;c:\;e:\  
2):临时配置方式:set classpath=.;c:\;e:\


关于配置环境变量需要注意的事项:
在定义classpath环境变量时,需要注意的情况  如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件;  
如果指定了classpath,那么会在指定的目录下查找要运行的类文件。 还会在当前目录找吗?
两种情况:  
1):如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。  
2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。  一般不指定分号,如果没有在指定目录下找到要运行的类文 件,就报错,这样可以调试程序。


java的流程控制:
1, 判断结构
语句的方式体现流程控制
if语句的三种表现形式:
格式一:
if(条件表达式){
语句体;
}
当条件表达式为true,执行语句体;
当条件表达式为false,不执行语句体;


格式二:
if(条件表达式){
语句体;
}else{
语句体;
}


格式三:
if(条件表达式){
语句体;
}else if(条件表达式){
语句体;
}else if(条件表达式){
语句体;
}else if(条件表达式){
语句体;
}.......
else{
语句
}


2,选择结构
switch(表达式){
case 常量值1:语句体;break;
case 常量值2:语句体;break;
case 常量值3:语句体;break;
case 常量值4:语句体;break;
.......
default:语句体;break;
}
注意:
表达式的值:只能是byte,short,int char         枚举,字符串
case 后的值不能重复,没有顺序
break可以省略,如果省略了就一直执行到遇到break为止;
default可以写在switch结构中的任意位置;如果将default语句放在了第一行,则不管expression与case中的value是否匹配,程序会从default开始执行直到第一个break出现。

3,循环结构
    可以控制JAVA程序代码的执行次数

 while循环
  while(条件表达式){
循环体
  }

 do...while
  do{
循环体
  }while(条件表达式);
  循环体至少执行一次
for循环
    for(初始化表达式;条件表达式;递增递减表达式){
循环体
    }
   初始化表达式:确定循环的起点
   条件表达式:确定循环的终点
    递增递减表达式:步长值
    1---->2---(true)--->4----->3----->2--(true)---->4----->3---->2---true---4
    ----->3----->2---(false)----结束


    for(int i=1;i<=5;i++){
System.out.println("I love You!");
    }
   i=1;true,打印,i++ i=2
        true,打印,i++ i=3
true,打印,i++ i=4
true,打印,i++ i=5
true,打印,i++ i=6
false


方法:
[修饰符] 返回值类型  方法名([参数列表]){
功能代码段
}
修饰符:public static 调用方法方便
返回值类型:
      该功能运行结束后的结果类型
该功能运行结束是否有结果
如果有,再看结果的类型,确定方法的返回值类型
在方法中,一定以return 语句结束该方法


如果没结果,该方法返回值为空,void
不需要return语句
方法名:规则+规范
          见名知意,首字母小写,其他单词首字母大写
参数列表:
      方法中的参数相当于方法中定义的变量
  定义方法,什么时候有参数,什么时候没参数?
  当,在方法中,有不确定的数据参与运算,必须使用参数的方式
  定义方法参数,形式参数,形参
  int x,int y
  调用方法参数,实参    100,300

调用:
      无返回值   print99();
有返回值, 有参数    add1(100,300)


数组:
可以存储多个相同类型数据的容器
方便管理多个数据
数组中的数据会被自动编号,编号从0开始
定义一个数组
      数据类型[] 数组名;
  数据类型 数组名[];
  int[] ages;
  int ages[];
  int i = 10;
数组初始化
       ages = new int[5];
new:结果,可以创建一个实体(对象)
ages = {23,21,20,19,25};
ages = new int[]{12,23,34,45,12};
数组元素的访问
     通过元素下标(角标,索引)访问,从0开始     
int[] ages = {12,23};
ages[0] = 12;
ages[1] = 23;
 length  数组中元素的个数 数组的长度
      ages.length=2
  数组元素最大下标值=数组长度-1;
    使用数组注意:
         数组的长度一旦确定,不会改变
数组下标越界异常
空指针异常



---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

详细请查看:www.itheima.com