Android自学笔记——Java基础篇(一)

目录

  • 写在前面
  • 初始Java
    • Java介绍
    • 工具介绍
  • Java语言基础
    • 8种基本数据类型
    • 变量常量
    • 七种常用运算符
      • 定义
      • 优先级
    • 数据类型转换
      • 隐式类型转换
      • 显示类型转换
    • 代码注释
  • 流程控制
    • 复合语句
    • 条件语句
      • if条件语句
      • switch多分支
    • 循环语句
      • while循环
      • do...while循环语句
      • for循环语句
    • 循环控制
  • 非基本数据类型——String类
    • 定义
    • 常用方法
  • 常见数据结构——数组
    • 基本概念
    • 常见算法
      • 冒泡排序
      • 直接排序
      • 反转排序

写在前面

学习有方法,自学有技巧。首先,我觉得,想学好编程首先要爱好这个,其次要能吃苦,会独立思考,举一反三。最重要是不断学习,因为技术发展很快。
我自己常在网站上别人写的干货,总结的经验,但慢慢发现当时看了茅舍顿开,当自己用的时候还是有些模糊不清。毕竟,别人总结的永远是别人的,而且有时候同一个技术有不同版本,最主要看了还经常忘,于是,就开始在CSDN中作笔记,做总结,分享一下自己的学习过程。
想学好androd,必须夯实Java基础。我入手的的第一本Java书偏向于基础,本人觉得初学者不用看太多的书,找相对基础的书系统学习,最主要是看自己学的程度,而且看书是有技巧的:
首先,一本书不需要全部看完,有些技术是用不着的;
其次,对于书中的知识点要能举一反三,适当拓展;
最后,也是最重要的一点,一定一定要跟着敲示例代码

初始Java

Java介绍

1.定义:Java是一门高级的面向对象的程序设计语言。
2.版本:有JavaSE(标准版)、JavaEE(企业版),JavaME(嵌入系统开发)三种版本。
2.特点:
a.既是编译型又是解释型,程序经过编译之后转换为一种称为Java字节码的中间语言,Java虚拟机(JVM)对字节码进行解释和运行。编译只进行一次,解释每次程序运行时都会运行。
b.多线程,可同一时间进行多项任务;
c.面向对象编程,Java提倡万物皆对象。
当然,Java不止这么一些特点,还有分布性、高性能、动态等等特点。

工具介绍

1.JDK下载:http://www.oracle.com。
2.环境配置:在环境变量中添加Path路径,在控制台中输入Javac查询是否配置成功。
3.工具下载:我最初用的是Eclipse,网站为http://www.eclipse.org。

Java语言基础

8种基本数据类型

Android自学笔记——Java基础篇(一)_第1张图片

变量常量

Android自学笔记——Java基础篇(一)_第2张图片
示例代码:

public class Test{
static final double PI = 3.14;//常量声明
static int age = 23;//声明int型成员变量
public static void main(String[] args){//主方法
   final int number;//声明int型常量
   number = 1235;//对常量赋值
   age=22;//再次对变量赋值
   System.out.println("PI值"+PI);
   System.out.println("number值"+number);
   System.out.println("age值"+age);
  }
}

七种常用运算符

定义

a.赋值运算符:将左边的值赋给右边,用“=”号表示,是一个二元运算符;
b.算术运算符:有+(加)、-(减)、*(乘)、/(除)、%(求余),是一个二元运算符;
c;自增和自减运算符:用“++”、“–”表示,是一个单目运算符;
d:比较运算符:有">“、”<“、“==”、“>=”、“<=”、”!=",运算结果是boolean型;
d.逻辑运算符:有“&& ”(逻辑与)、“||”(逻辑或)、“!”(逻辑非),除逻辑非是单目运算符,其余都是双目运算符;
e.位运算符:有“按位与”、“按位或”、“按位取反”、“按位异或”、“移位”运算,除“按位与”、“按位或”运算符外,其他只能用于处理整数;
f.三目运算符:条件式?值1:值2。

优先级

增量减量运算>算术运算>比较运算>逻辑运算>赋值运算。

数据类型转换

隐式类型转换

从低级类型向高级类型转换,系统将自动执行。基本数据类型会涉及数据转换,不包括逻辑类型和字符类型,从高到低排列的顺序为double>float>long>int>short>byte。
如;int x = 50;

显示类型转换

把高精度赋值给低精度的变量时,必须使用显示类型转换。语法为:
(类型名)要转换的值
ina a = (int)45.23 ;

代码注释

1.单行注释:“//”
2.多行注释:“/**/”
3.文档注释:“/ ** */”

流程控制

复合语句

复合语句以整个块区为单位,又称块语句,有开括号“{”开始,闭括号“}”结束,如:

public class Test{
public static void main(String[] args){//主方法
    int a = 20;
    {//复合语句
      int y = 20;
      Systenm.out.println(x)
        {//复合语句
         int z = 252;
         Systenm.out.println(x)
        }      
    }
  }
}

条件语句

if条件语句

1.简单型:if(布尔表达式){语句序列},如

int a = 100;
if(a == 100){
System.out.println(a);
}

2.if…else

int a = 200;
if(a==200){
 System.out.println(a);
}else{
 System.out.println(“错了”);
}

3.if…else if多分支

int a = 200;
if(a>300){
 System.out.println(“大于300);
}else if(a > 250){
 System.out.println(“大于250);
}else{
  System.out.println(“都不是”);
}

switch多分支

String str = “你好Java;
switch(str){
  case “你好”:
   System.out.println(“你好”);
   break;
   caseJava”:
   System.out.println(Java);
   break;
   case “你好Java”:
   System.out.println(“你好Java);
   break;
   default:
     System.out.println(“都不是”);
}

循环语句

while循环

语法:while(条件表达式){执行语句}

int x = 1;
int sum= 0 ;
while(x <=10{
   sum = sum + x;
   x++;
}
System.out.println(sum);

do…while循环语句

do { 执行语句 } while(条件表达式);
例:

public class Test{
  public static void main(String args[]){
    int a = 100;
    while(a==60){
    System.out.println(“yes”);
    a--;
   }
   int b =100;
   do{
   System.out.println(“no”);
   b--;
   }while(b==60);
 }
}

for循环语句

语法如下:

for(表达式1;表达式2;表达式3){
  语句序列
}
或者foreach语句
for(元素变量X:遍历对象obj){
   引用了x的语句;
}

例:

public class Test{
  public static void main(String args[]){
    int sum = 0;
    for(int i =2;i<100;i++){
     sum = sum+i;
  }
System.out.println(“总和为:”+sum);
 }
}

循环控制

有两个关键字,break和continue。区别为
break语句:中断循环
continue语句:执行下一次循环
注意:如果是嵌套循环,break只跳出最内存的循环结构,如果想让跳出最外层,可用“标签”形式。
标签名:循环体{break标签名}

非基本数据类型——String类

定义

char只能表示单个字符,而String可以创建字符串对象。
语法:String str,声明字符串变量必须经过初始化才能使用。

常用方法

1.连接多个字符串用“+”号,如果连接其他类型,会将这些数据直接转化成字符串。
2.获取字符串长度:str.length()
3.字符串查找:str.indexOf()
4.字符串截取:str.substring(int index)
5.字符串判断:“==”是判断两个字符串的地址是否相等,equals()可用于比较内容。
6.格式化字符串:str.format(String format,Object...args)
7.字符串生成器:StringBuilder()

常见数据结构——数组

基本概念

1.定义:数组是具有相同数据类型的一组数据结构。
2.例子:

public class Test{
  public static void main(String args[]){
    // 一维数组创建并遍历
    int day[] = new int[]{20,21,22,23,24,25}
    for(int i =0;i<6;i++){
    System.out.println(“遍历数组:”+i );
    }
    // 二维数组创建并遍历
    int a[][] =new int[3][4]
    for(int = 0;i<a.length();i++){
      for(int j = 0;j<a[i].length();j++){
      System.out.println(a[i][j]);
      }
    }
 }
}

3.常用方法:
填充数组:fill(int[] a,int value),前者为数组,后者为具体值
数组排序:Arrays.sort(Object),升序排序。
复制数组:copyOf(arr,int length),前者为数组,后者为新数组的长度。
查询数组:binarySearch(Object[],Object key),前者要搜索的数组,后者为要搜索的值。

常见算法

冒泡排序

public class Test{
  public static void main(String args[]){
   int[] array = {62,15,28,39,45};//创建数组,无序
   Test sorter = new Test();//创建排序对象
   sorter.sort(array);//d=调用方法排序
   }
   
  //冒泡排序
  public void sort(int[] array){
   for(int i=1;i<array.lengh;i++){
     for(int j = 0;j<array.length-i;j++){
      if(array[j]>array[j+1]){
      int temp= array[j];//把第一个元素值存临时变量
      array[j]=array[j+1];//把第二个元素值存入第一个值中
      array[j+1]=temp;//把临时变量保存在第二个元素
      }
     }
   }
   showArray(array);//输出元素
  }
  
  //显示元素
  public void showArray(int[] array){
  for(int i:array){
  System.out.print(">"+i)
  }
   System.out.println()
  }
}

直接排序

public class Test{
  public static void main(String args[]){
   int[] array = {62,15,28,39,45};//创建数组,无序
   Test sorter = new Test();//创建排序对象
   sorter.sort(array);//d=调用方法排序
   }
   
  //直接排序
  public void sort(int[] array){
   int index;
   for(int i=1;i<array.lengh;i++){
     for(int j = 1;j<array.length-i;j++){
          int index = 0;
          if(array[j]>array[index]){
              index = j;
          }
       }
      int temp= array[array.length-i];//把第一个元素值存临时变量
      array[array.length-i]=array[index];//把第二个元素值存入第一个值中
      array[index]=temp;//把临时变量保存在第二个元素
   }
   showArray(array);//输出元素
  }
  
  //显示元素
  public void showArray(int[] array){
  for(int i:array){
  System.out.print(">"+i)
  }
   System.out.println()
  }
}

反转排序

public class Test{
  public static void main(String args[]){
   int[] array = {62,15,28,39,45};//创建数组,无序
   Test sorter = new Test();/泡沫排序对象
   sorter.sort(array);//d=调用方法排序
   }
   
  //反转排序
  public void sort(int[] array){
  showArray(array);//输出排序前元素
  int temp;
  int len = array.length;
  for(int i =0;i<len/2;i++){
       temp=array[i];
       array[i]=array[len-1-i];
       array[len-1-i] = temp;
  }
   showArray(array);//输出排序后元素
  }
  
  //显示元素
  public void showArray(int[] array){
  for(int i:array){
  System.out.print(">"+i)
  }
   System.out.println()
  }
}

个人总结的重要基础篇知识就以上这些,下一篇将向Java核心技术进攻。

你可能感兴趣的:(android,java)