java_基础总结

1,常用的原始数据类型

int 整数

float,double 浮点数,double 相对float 范围更宽

boolean 布尔值

EX:(1+14)/2

用int 来表示,就只会得到整数部分,不会得到小数部分

用float,double来表示,要加f或d才会得到小数部分

int a=(1+14)/2;
float b=(1+14)/2f;
double c=(1+14)/2d;

布尔值是判断true 或者 false 的数据类型,其中会用到一些逻辑运算符,如 &&,||,前者表示AND,后者表示OR,还有==,!=表示相等与不相等.

EX:

boolean d= 1==0;

因为1肯定不等于0,所以d=false

2,数据类型之间的转换

(1)自动转化

Java中进行数据转换时只要满足下列两个条件就可以实现自动数据类型转化:

-转换前的数据类型与转换后的类型兼容。

-转换后的数据类型的表示范围比转换前的类型大。

EX:int -> float -> double 是自动转化

(2)强制转化

在Java中的进行数据转换时只要满足下列两个条件就可以实现强制数据类型转化:

-转换前的数据类型与转换后的类型兼容。

-转换后的数据类型的表示范围比转换前的类型小。

EX:double->float->int 是强制转化。

   Double a=5;

  Int b=(int)a;

3:输出语句: 

system.out.println();(换行输出)

system.out.print();(不换行输出)

输出语句中用"\t"表示间隔,"\n"表示换行 "\r"表示回车,即将"\r"后面的放在最前面输出

4,Scanner

我们需要从命令行(控制台)得到值,就需要用到Scannner

首先要导入一个包

import java.util.Scanner;

Scaner 的两种用法:

1

整型:  int a=new Scanner(System.in).nextInt();

浮点:  float b=new Scanner(System.in).nextFloat();

浮点:  double b=new Scanner(System.in).nextDouble();

字符串:String s=new Scanner(System.in).next();

     String s=new Scanner(System.in).nextLine();

得到字符的方法 char ch = new Scanner(System.in).next().charAt(0);

2,先为Scanner创建新对象

Scanner sc=new Scanner(system.in);

整数 int a=sc.nextInt;

浮点数 float b=sc.nextFloat;

    double c=sc.nextDouble;

字符串 String d=next();

    String e=nextLine();

d与e的区别为,用d 的时候,当字符串中有空格时,不会取到空格后面的值

EX: 命令行输入"q we" ,d就只能输出"q"

而当把d,e放在一起

EX:

String d=sc.next();
String e=sc.nextLine();

这时候,命令行输入 "q we",d输出"q" e输出" we",

5,java基础语句

详情见另一篇博客

http://www.cnblogs.com/listencat/p/5328332.html;

6,数组

one 创建并初始化数组

在java中,创建一个数组需要三步:

(1)声明数组的名字和类型;

在声明数组时,要指定数组名称,和它含有的数据的数据类型

(2)创建数组;

在创建数组时,要指定数组的长度(范围或元素的个数)

(3)初始化数组元素;

常用的创建数组方式:

1) int [] a=new int[N];(N表示长度)

2) int [] a={1,2,3,...};

two 使用数组

在声明与创建数组后,可以通过数组名之后的方括号中的索引来访问其中的元素.数组一经创建,大小就固定了.可以使用a.length
获取数组的长度,数组的最后一个元素为a.length-1,第一位为0,若使用小于0火大于a.length-1的索引访问数组,会抛出异常

一些典型的数组处理代码

//N自取
int [a]=new int[N];
//找出数组中最大的元素
double max= a[0];
for(int i = 1; i < a.length-1; i++){
       if(a[i]>max){
         max=a[i];
       }
}
//计算数组元素的平均值
int n=a.length;
double sum=0.0d;
for (int i =0; i<n;i++){
    sum +=a[i];
}
double average = sum/n;
//复制数组
int n =a.length;
double [] b=new double[n];
for(int i=0;i<n;i++){
    b[i]=a[i];
}
//颠倒数组元素的顺序
int n=a.length;
for(int i=0;i<n/2;i++){
    double temp =a[i];
    a[i]=a[n-1-i];
    a[n-1-i]=temp;
}

three 二维数组

在java中二维数组就是一维数组的数组.第一维可以看做行数,第二维可以看做列数

EX:int [][] a=new int[N][N];

7,静态方法

方法需要参数(EX:int)并根据参数计算出某种数据类型的返回值或者产生某种作用(如打印一个值).

静态方法解析

一些典型的静态方法

//计算一个整数的绝对值
public static int abs(int a){
    if (a<0){
        return -x;
    }else{
         return x;
    }
}
//计算一个浮点数的绝对值
public static double abs(double a){
    if(a<0){
        return -x;
    }else{
         return x;
    }
}
//判断一个数是否是素数
    public static boolean isprime(int a){
        if(a < 2){
            return false;
        }else if(a==2 || a==3){
            return true;
        }
        for(int i =2; i*i <=a;i++){
            if(a%i==0){
                return false;
            }else{
                     return true;
            }
        }
        return false;
    }
   

调用静态方法

调用静态方法的方法是写出方法名并在后面的括号中列出参数值,用逗号分隔.当调用的是表达式的一部分时,方法的返回值将会替代表达式中的方法调用.

递归

方法可以调用自己

二分查找的递归

    public static int rank(int b,int[]a){
        return rank(b,a,0,a.length-1);
    }
    private static int rank(int b, int[] a, int i, int j) {
        //如果b存在于a[]中,它的索引不会小于i且不会大于j
        if(i>j){
            return -1;
        }
        int c=i+(j-i)/2;
        if(b<a[c]){
            return rank(b,a,i,c-1);
        }else if(b>a[c]){
            return rank(b,a,c+1,j);
        }else{
            return c;
        }
    }
时间: 2025-01-17 18:00:46

java_基础总结的相关文章

java_基础——在代码里编译.java文件

[本文介绍] 本文不是深入理解和使用java编译器,只是在代码里编译.java文件的helloWorld.这种技术还是蛮有意思的,说不定在将来的某些只能化项目会运用到!^_^ [编译最基础的流程] [java代码] 1 package com.zjm.www.test; 2 3 import java.io.IOException; 4 5 import javax.tools.JavaCompiler; 6 import javax.tools.JavaCompiler.Compilation

java_基础_异常

之前只是了解的最基础的异常形式,没有过多的深入 今天因为一些原因了解了一下 下面来说说异常的几种形式 1.try-catch语句块 代码示例 class test{ public static void main(String[] args) { try { int a = 1/0; System.out.println(a); }catch(ArithmeticException e) { e.printStackTrace(); System.out.println(e); }finally

Java_基础_i=i++;

例: package deep; public class PostfixIncrementOperator { public static void main(String[] args) { int i = 10; i = i++; System.out.println(i); } } 运行结果:10 首先我们看JLS中对后置加的解释:The result of the postfix increment expression is not a variable, but a value.

JAVA_基础数据类型包装类

Java_基础知识回顾

1.ByteArrayInputStream. ByteArrayOutputStream String str = "ZHANGSAN"; //System.out.println(str.toLowerCase()); ByteArrayInputStream inputStream = new ByteArrayInputStream(str.getBytes()); ByteArrayOutputStream outputStream = new ByteArrayOutput

Java_基础语法编程练习

一:让计算机随机产生100个0到100之间的整数,每个整数代表某个学生的成绩,计算这些成绩的平均值 public static void main(String[] args) { int sum = 0; for(int i = 0 ;i < 100 ;i++) { int n = (int) (Math.random()*101); sum += n; } System.out.println("平均值为:" + (sum/100.0)); } 二: 输入一个100-999的

【java_基础】JVM内存模型和垃圾回收机制

1. JVM内存模型 Java虚拟机在程序执行过程会把jvm的内存分为若干个不同的数据区域来管理,这些区域有自己的用途,以及创建和销毁时间. 先来看一下Java程序具体执行的过程 上图中的运行数据区(Runtime Data Areas)即为JVM内存区域,其结构如下图: 各区域存储的具体信息: 1.1 程序计数器 程序计数器(Program Counter Register),也有称作为PC寄存器.JVM中的程序计数器跟汇编语言中的程序计数器在功能上是相同的,即指示待执行指令的地址.当 CPU

【Java_基础】java中static与final关键字的区别

1.static关键字 经由static关键字修饰的成员为类成员,被所有对象所共享,通常通过类名来引用static成员.类加载的连接阶段将会为静态成员变量在jvm内存的方法区分配空间,并在类的初始化阶段赋初值. 一个类的static成员变量只有“一份”(存储在方法区),无论该类创建了多少对象.看如下的示例: public class StaticDemo { public static void main(String[] args) { People p1 = new People(18);

Java_基础篇(杨辉三角)

对于刚刚学Java的同学来说,杨辉三角是一个很好的例子. 杨辉三角让初学者更好的理解数组的定义和更好地去运用数组,特别是二维数组. 除此之外,还让初学者更好的掌握嵌套语句的使用. 以下是我的杨辉三角Java代码: 1 /* 2 * 简单的杨辉三角 3 * 1 4 * 1 1 5 * 1 2 1 6 * 1 3 3 1 7 * 1 4 6 4 1 8 * ... 9 * 根据杨辉三角的规律: 10 * 1.每一行增加一个数. 11 * 2.每一行的第一个数和最后一个数都是1. 12 * 3.从第三