java认识

java特点:

1.跨平台性

2.简单性,相对于C++,java就是借鉴于C++,而简单性就体现在java中只支持单继承,C++中就支持多继承

3.java是纯粹的面向对象语言


程序的运行方式有两种:

编译 编译器: ->机器码文件

解释 解释器: ->逐行翻译并执行

所以编译方式运行效率高,但是不能跨平台

解释方式可以跨平台,只要提供相应的平台解释器


java是先编译后解释

.java源文件->.class字节码文件->解释运行

.class可以跨平台,这也是为什么说java可以跨平台的原因


JVM+解释器=JRE(Java Runtime Environment:java运行环境)

JVM:java虚拟机,屏蔽不同OS(操作系统)的差异


编译器+JRE+工具+类库=jdk(java开发工具包)


一个类编译后对应一个.class文件

一个源文件可以定义多个类

一个源文件只能定义一个公开类,公开类名只能与文件名相同

java的环境变量的配置:

系统变量JAVA_HOME:设置为java的安装目录,这个变量时告诉操作系统java的安装路径,当其它程序需要java支持的时候,就可以通过该变量来找到java安装路径

PATH:增加java安装目录的bin目录,在命令行输入指令时,用来指示操作系统去哪个路径下找java的相关程序

CLASSPATH:设置为".",不要引号,表示为当前目录,为虚拟机提供.class文件的路径


在命令行执行java代码

在不没有将java代码放入包时:

在命令行进入源代码存放的文件夹,如源文件名为:test.java,这时,使用javac test.java命令编译源代码,生成test.class文件,这个文件放在与test.java文件同级的目录下,然后命令行输入java test,即可运行

在将java代码放入包时:在java源代码的第一行写入:pakeage p1;即将接下来要写的test类放入p1这个包中,这时候编译命令为:javac -d . test.java,表示将生成的test.class文件放入与test.java文件同级目录下的p1文件夹中,p1是编译自动生成的文件夹,然后命令行输入:java p1.test即可运行

为什么要引入包呢?引入包可以避免类名的冲突java.lang包是java中最常用的包,在java源文件中自动引入了这个包


byte 1个字节 -128~127

short 2个字节 -32768-32767

int 4个字节

long 8个字节

float 4个字节

double 8个字节

char 2个字节 0~65536

计算机内部使用的是二进制表示,在小数的表示过程中可能会产生精度上的损失

public class test{

public static void main(String[] args){

double a=2.0-1.1;

System.out.println(a);

}

}//输出为:0.8999999999,而不是我们想象的0.9,这就相当于用十进制难以表示1/3一样

3/2这样的表达式的值其实为1,而不是1.5,这是由于3和2都是int型的数据,根据自动类型提升规则3/2这样的表达式也应该是int型,相当于(int)1.5,即强制转换,而要得到想要的1.5,则应该这样写:3.0/2,3.0小数默认为double型,3.0就是double型,自动类型提升,则3.0/2的类型就应该是double型


a=5;

a++和++a其实最后都把a的值加了一,a最后都等于6,区别在于a++和++a这两个表达式的值,表达式其实也是有值的,a++的值是a在加一之前的值即a++的值为5,++a则是a在加一之后的值即++a的值为6.a--和--a同理

a+b这个表达式的值就是b的值(不确定),我在输出a+b的值时输出的确实是a加上b之后的值


在及java中不存在函数的概念,函数其实就在方法,在java中给函数另取了一个名字就是方法

函数的作用:

1.减少冗余代码

2.提高代码的可维护性

3.让程序更加的灵活


判断一个数是否是质数:

public static boolean isPrime(int a){

for(int i=2;i<=Math,sqrt(a);i++){

if(i%2==0) return false;

}

return true;

}


数组的扩容其实就是重新创建一个更大的数组,将原数组的元素都复制到新数组,然后把新数组的地址赋给原数组即可

public static int[] expand(int[] a){//数组的扩容

int[] newarray=new int[a.length*2];//扩容两倍

System.arraycopy(a,0,newarray,0,a.length);//二维数组也可

return newarray;

}

Array.copyof(a,a.length*2);//利用函数扩容,a表示原数组,a.length*2表示扩容后的长度











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值