java基础语法学习

本文介绍了Java编程中的基础知识,包括从控制台读取输入、基本数据类型及其范围、前置自增/减、选择语句、数学函数、字符和字符串处理、循环结构、函数重载、数组操作、Random和time类、可见性修饰符、静态成员、继承与多态等内容。
一.从控制台读入数据

        System.out表示标准输出设备,System.in表示标准输入设备。java不直接支持控制台输入需要使用Scanner类创建实例对象。

import java.util.Scanner;
public class  base{
    public static void main(String[] args){
        Scanner input=new Scanner(System.in);
        String s=input.nextLine();
        System.out.println("我输入的字符:"+s);
        input.close();
    }
} 

 每一个java程序都有一个main方法,程序执行的入口。创建一个实例对象后需要调用方法,input.nextLine()表示输入字符串,保存到变量s。相应的方法还有:

nextByte()//读取一个byte类型的整数
nextShort()//读取short类型的整数
nextInt()//读取int类型的整数
nextLong()//long类型的整数
nextFloat()//float类型的整数
nextDouble()//double类型的整数
二.基本数据类型及范围
类型名                        范围存储大小
byte-eq?2%5E%7B7%7D(-128)——eq?2%5E%7B7%7D-1(127)8位带符号
shorteq?-2%5E%7B15%7D(-32768)——eq?2%5E%7B15%7D-1(32767)16位带符号
int-2147483648——214748364732位带符号
long-9223372036854775807——9,223,372,036,854,775,80764位带符号
float

负数范围:-3.4028235E+38—— -1.4E-45

正数范围:

32位
double

负数范围:-1.7976931348623157E+308——-4.9E-324

正数范围1.4E-324——1.7976931348623157E+308

64位

 整型浮点型的深入理解:《深入理解计算机系统》:41-86页

直接量:0b,0B表示二进制,0开头表8进制,0x表16进制。浮点型默认为double型,后加f表float,d或D表double。

三.前置自增(自减),后置自增(自减)的区别
public class  base{
    public static void main(String[] args){
        int a=1;
        int b=a++;
        int c=++a;
        int h=1;
        System.out.println("后置加加:"+b);
        System.out.println("前加加:"+c);
        System.out.println("h:"+h++);
    }
} 

 运行结果:7dadaeda51124735a54989a84352f232.png

可以看到输出b的值还是1,说明后置++使用的是没有加1的值,但是变量的值已经加1。从c和h的结果可以看到前置++使用的是变量增加后的值,变量也加了1。同理--操作也一样。总结前置自增操作符:变量的值加1且使用变量增加后的值。后置自增操作符:变量的值加1但使用变量原来的值。自减操作与自增操作一样,就是减1而已。

四.选择语句

基本与c,c++一致

if(条件){


}





if(){

}else{

}




if(){

}else if(){

}else{

}



switch(){
    case 0:code;
           break;
    case 1:code;
           break;
    case 2:code;
           break;
    default:
}
五.math类函数方法
1.三角函数
sin()  cos() tan() toRadians(degree)//将以度为单位的角度转为弧度表示  
toDegrees()转化为度
asin() acos() atan()
2.指数函数

exp(x)返回e的x次方

log(x)x的自然底数

log10()

pow(a,b)

sqrt()

3.取整方法

ceil()向上取整,1.2->2.0,-1.2->-1.0

floor()向下取整,1.2->1,-1.2->-2

rint()最接近的整数,距离相同,取偶数

round(x),x是单精度,(int)Math.floor(x+0.5);x是双精度(long)Math.floor(x+0.5)

4.min,max,abs

abs取绝对值

5.random

0.0<Math.random()<1.0

六.转义字符
转义序列名称Unicode10进制

\b

退格键\u00088
\tTab键\u00099
\n换行符\u000A10
\f换页符\u000C12
\r回车符\u000D13
\\反斜杠\u005C92
\"双引号\u002234
七.Character中的方法

isDigit()判断是否是数字

isLetter()判断是否是字母

isLetter0rDigit()判断是字母或者是数字

isUpperCase()判断是否是大写字母

toLowerCase()转为小写

toUpperCase转为大写

八.String 类中的方法

        length()字符数

        charAt(index)返回指定位置字符

        concat()拼接字符串

        toUpperCase()返回新的字符串,字母都为大写

        toLowerCase()返回新的字符串,字母都为小写

        trim()去掉字符串两边的空字符

九.循环语句

也是和以前学过的语言差不多

while(){


}




do{





}while();



for(初始操作;循环条件;每次迭代操作){




}

 foreacn循环:

        for(int e:list(数组)){

        }

不使用下标就可以遍历数组有点像python的

s="1234"

for i in s:

        print(i)

输出:

1

2

3

4

十.函数重载

函数重载就是使用相同的函数名定义不同的方法。

使用不同的签名:1.public static int max(int nu1,int nu2)

                             2.public static double max(double nu1,double nu2)

                              3.2.public static double max(double nu1,double nu2,double nu3)

产生歧义:max(double num1,int num2)  max(int num1,double num2)

十一.创建数组

int[] s=new in[10],有点像c++动态分配内存。

1.Arrays类方法

 1.0 sort方法

public static void sort(Object[] arr):用于对指定数组进行升序排序

 1.1 binarySearch方法

 public static int binarySearch(Object[] arr, Object key)在指定的数组中使用二 分查找算法来搜索指定的键值。如果找到键值,则返回其索引;否则返回一个负数,表示搜索结果不存在。

1.2 equals方法

public static boolean equals(Object[] a, Object[] b)用于比较两个数组是否相等。数组元素必须具有相同的类型和顺序,并且长度必须相同。

1.3 fill 方法

public static void fill(Object[] arr, Object val)用指定的元素填充指定的数组。

1.4  copy 方法

public static void copy(Object[] src, int srcPos, Object[] dest, int destPos, int length)将指定源数组的指定范围复制到目标数组的指定位置

1.5 tostring 方法

public static String toString(Object[] arr): 返回一个包含指定数组的元素的字符串表示形式

类和对象

把两个类放在同一个文件,,文件中只能有一个公共类(public),有几个类编译成几个.class文件。

一.Random类
  1. nextInt():生成一个随机的整数。可以通过传入参数来限定生成的随机数范围。

  2. nextDouble():生成一个0.0到1.0之间的随机浮点数。

  3. nextBoolean():随机返回true或false。

  4. nextLong():生成一个随机的长整型数。

  5. nextFloat():生成一个0.0到1.0之间的随机浮点数,与nextDouble()类似,但返回类型为float。

  6. nextGaussian():生成一个服从高斯分布的随机数。

二.time类
  1. setTime(long time):设置Time对象的时间值,参数为一个long型的毫秒数,表示从标准基准时间(1970年1月1日 00:00:00 GMT)的偏移量。

  2. getTime():获取Time对象的时间值,返回一个long型的毫秒数。

  3. toString():将Time对象转换为字符串表示形式,格式为"hh:mm:ss"。

  4. equals(Object obj):比较Time对象与指定对象是否相等,如果指定的对象也是Time对象并且具有相同的时间值,则返回true,否则返回false。

  5. before(Time when)和after(Time when):用于比较两个Time对象的时间先后顺序,返回true或false。

  6. static valueOf(String s):将一个表示时间的字符串转换为Time对象,字符串的格式必须为"hh:mm:ss"。

三.可见性修饰符private和protected的区别

声明包:packakge packagename;

没有可见性修饰符默认是同一包内任何类可访问

1. private修饰符表示私有的,只能在当前类中访问。其他的类无法访问使用private修饰的方法或变量。

2. protected修饰符表示受保护的,可以在当前类和同一包中的其他类中被访问。并且,它还可以在不同包中的子类中被访问。

四.类中的静态变量,静态成员

静态的是相对于整个类而言的,共享一个内存空间。直接使用类名调用。静态方法不能调用实例方法,实例变量。使用static关键字修饰。像计算创建了多少个实例对象就需要使用静态变量

五.继承与多态

public class 子类名 extends 父类名。关键字extends告诉编译器继承了父类的方法。

调用父类构造方法要使用关键字super,调用必须是构造方法的第一条语句。

java的方法重写标志:@override

多态指父类的变量可以指向子类对象 。 

关键字final表示不能扩展,不能重写。所以父类不能使用关键字final。

后面学习的一下操作都是通过使用类来创建实例对象调用相应的方法实现的。

总结:学过一门语言之后再学另一门语言是比较简单的,只要比较语言之间的语法区别就行了以及有什么扩展。语言只是一门工具,关键是编程的思维,以及算法的学习。编程需要多加的练习的,后面就是算法以及工具的学习。多去一些在线编程网站练习如leetcode,多自己做一些项目,这样才会有所提高。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值