Java基础知识

Java基础知识

Java简介

Java是由Sun Microsystems公司(Sun公司名称其实是斯坦福大学校园网(Stanford University Network)的首字母 缩写。)于1995年5月推出的Java面向对象程序设计语言和 Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。
Java分为三个体系:
JavaSE(J2SE):(Java2 Platform Standard Edition,java平台标准版)
JavaEE(J2EE): (Java 2 Platform,Enterprise Edition,java平台企业版)
JavaME(J2ME): (Java 2 Platform Micro Edition,java平台微型版)。

Java发展史

1995年5月23日,Java语言诞生
1996年1月,第一个JDK­JDK1.0诞生
1996年4月,10个主要的操作系统供应商申明将在其产品中嵌入JAVA技术
1996年9月,约8.3万个网页应用了JAVA技术来制作
1997年2月18日,JDK1.1发布
1997年4月2日,JavaOne会议召开,参与者逾一万人,创当时全球同类会议规模 之纪录
1997年9月,JavaDeveloperConnection社区成员超过十万
1998年2月,JDK1.1被下载超过2,000,000次
1998年12月8日,JAVA2企业平台J2EE发布
1999年6月,SUN公司发布Java的三个版本:标准版(JavaSE,以前是J2SE)、 企业版(JavaEE以前是J2EE)和微型版(JavaME,以前是J2ME)
2000年5月8日,JDK1.3发布
2000年5月29日,JDK1.4发布
2001年6月5日,NOKIA(诺基亚)宣布,到2003年将出售1亿部支持Java的手机
2001年9月24日,J2EE1.3发布
2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升
2004年9月30日18:00PM,J2SE1.5发布,成为Java语言发展史上的又一里程 碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0 1.2、Java的发展史
2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种 版本已经更名,以取消其中的数字"2":J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME
2006年12月,SUN公司发布JRE6.0
2009年04月20日,Oracle公司74亿美元收购Sun。取得java的版权。
2010年11月,由于Oracle公司对于Java社区的不友善,因此Apache扬言将退出 JCP。
2011年7月28日,Oracle公司发布 Java7.0 的正式版。
2014年3月18日,Oracle公司发表 Java SE 8。
2017年9月21日,Oracle公司发表 Java SE 9
2018年3月21日,Oracle公司发表 Java SE 10
2018年9月25日,Java SE 11 发布(18.9 LTS),长期支持版
2019年3月20日,Java SE 12 发布

Java语言特点

  • Java语言是面向对象的
  • Java语言是跨平台
  • Java语言是简单的
  • Java语言是解释型的语言
  • Java语言是分布式的
  • Java语言是健壮的
  • Java语言是多线程的

基本语法

编写Java程序时需要注意的几点:

  • Java程序区分大小写,ArrayList LIst01 和 ArrayList list01 它们表示不同的变量。
  • 对类名命名时,类名的首字母应该大写,如果类名由多个有意义的英语单词组成,那么每个单词首字母大写,这种方法又称为驼峰式命名法。例:MyFirstJava
  • 对方法名命名时,方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写
  • 所有的 Java 程序都是由 public static void main(String []args) 方法开始执行。这是我们的主方法

Java 标识符

Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。

关于 Java 标识符,有以下几点需要注意:

所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线( _ )开始,首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
关键字不能用作标识符
标识符是大小写敏感的
合法标识符举例:age、$salary、_value、__1_value
非法标识符举例:123abc、-salary

Java修饰符

Java可以使用修饰符来修饰类中方法和属性。主要有两类修饰符:

  • 访问控制修饰符 : default, public(公有) , protected(保护), private (私有)
  • 非访问控制修饰符 : final,abstract(抽象), static(静态), synchronized(方法加锁)

推荐几个详细写final abstract synchronized的链接:
final关键字
abstract关键字
synchronized关键字

Java基本数据类型

整数类型

整数类型主要由byte、short、int、long四种类型,四种类型表示不同的取值范围,如下

数据类型内存空间取值范围
byte8位-128~127 (-2^7)~ (2^7-1)
short16位-32768~32767 (-2^15) ~(2^15 - 1)
int32位-2147483648~2147483647 (-2^31) ~ (-2^31-1 )
long64位-9,223,372,036,854,775,808~9,223,372,036,854,775,807 (-2^63)~ (-2^63-1)

当然取值范围有点难得记,主要是数值太长了,本人是通过现实生活中的U盘记的,8G 16G 32G 64G等减去1来记,各位有更好的记法相互分享一下
【例】

public static void main(String [] args){//主函数
	byte mybyte = 124;  //声明一个byte变量并赋值
	short myshort = 32564;  //声明一个short变量并赋值
	int myint = 2345678; //声明一个int变量并赋值
	long mylong = 345678932; //声明一个long变量并赋值
}

浮点类型

浮点类型表示有小数部分的数字,Java语言中分为单精度浮点型(float)和双精度浮点型(double),它们具有不同的取值范围,如下

数据类型内存空间取值范围
float32位1.4E-45 ~ 3.4028235E38
double64位4.9E-324 ~ 1.7976931348623157E308

结尾的"E+数字"表示E之前的数字要乘以10的多少次方。比如3.14E3就是3.14 × 103 =3140,3.14E-3 就是 3.14 x 10-3 =0.00314。
【例】

float f1 = 3.1f; //声明一个float变量并赋值  注意:float后要跟一个f,不然会报错,系统默认为double类型
double f2 = 1.2344;  //声明一个double变量并赋值

字符类型

字符类型用于储存单个字符,占用16位的内存空间。由于Unicode编码采用无符号编码,可以存储65536个字符(0x000~0xfff)。
比如我国1980年发布的《信息交换用汉字编码字符集》(GB2312),GB 2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;同时,GB 2312收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符。

GB2312
GB 2312中对所收汉字进行了“分区”处理,每区含有94个汉字/符号。这种表示方式也称为区位码。
01-09区为特殊符号。
16-55区为一级汉字,按拼音排序。
56-87区为二级汉字,按部首/笔画排序。
10-15区及88-94区则未有编码。

布尔类型

布尔类型又称逻辑类型,关键字Boolean来定义布尔类型变量,Boolean类型只有true和false两个值,分别表示“真”和“假”。

变量&常量

常量

常量在程序运行时是不可以被改变的,在 Java 中使用 final 关键字来修饰常量。一般情况下,我们对常量的命名通常都是大写字母,与变量区分开。
声明方法:

  final double PI = 3.14159;

变量

在Java中变量在使用前必须先声明,Java变量可以分为三种:

  • 成员变量:在一个类中声明的变量,但在方法、构造方法和语句块之外;
public class Employee{
   // 这个实例变量对子类可见
   public String name;
   // 私有变量,仅在该类可见
   private double salary;
   //在构造器中对name赋值
   public Employee (String empName){
      name = empName;
   }
   //设定salary的值
   public void setSalary(double empSal){
      salary = empSal;
   }  
   // 打印信息
   public void printEmp(){
      System.out.println("名字 : " + name );
      System.out.println("薪水 : " + salary);
   }
 
   public static void main(String[] args){
      Employee empOne = new Employee("RUNOOB");
      empOne.setSalary(1000.0);
      empOne.printEmp();
   }
}
  • 局部变量:在类的方法中声明的变量,出了方法体之外不可获取。
public class Test{ 
   public void pupAge(){
      int age;
      age = age + 7;
      System.out.println("小狗的年龄是 : " + age);
   }
   
   public static void main(String[] args){
      Test test = new Test();
      test.pupAge();
   }
}
  • 静态变量:静态变量也称为类变量,在类中以 static 关键字声明,但必须在方法之外。
public class Test {
    //salary是静态的私有变量
    private static double salary;
    // DEPARTMENT是一个常量
    public static final String DEPARTMENT = "开发人员";
    public static void main(String[] args){
    	salary = 10000;
        System.out.println(DEPARTMENT+"平均工资:"+salary);
    }
}

补:

运算符

算术运算符

操作符描述
+加法 ­ 相加运算符两侧的值
-减法 ­ 左操作数减去右操作数
*乘法 ­ 相乘操作符两侧的值
/除法 ­ 左操作数除以右操作数
取余 ­ 左操作数除以右操作数的余数
++自增: 操作数的值增加1
自减: 操作数的值减少1

注意:
++y(- -y):先将 y 的值自增(自减)1,然后再在当前表达式中使用 y 的值。
y++(y­­- - ):先在当前表达式中使用 y 的值,然后再将 y 的值自增(自减)1

关系运算符

运算符描述
>检查左操作数的值是否大于右操作数的值,如果是那么条件为真。
>=检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。
<检查左操作数的值是否小于右操作数的值,如果是那么条件为真。
<=检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。
==检查如果两个操作数的值是否相等,如果相等则条件为真。
!=检查如果两个操作数的值是否相等,如果值不相等则条件为真。

逻辑运算符

操作符描述
&&与,前后两个操作数必须都是true才返回true,否则返回false
&按位与,作用与&&相同,用作二进制运算
||称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。
|按位或,
!称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将 得到false。
^异或,当两个操作数不同时才返回true,如果两个操作数相同则返回false。

赋值运算符

操作符描述
=简单的赋值运算符,将右操作数的值赋给左侧操作数
+=加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数
­=减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数
*=乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数
/=除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数
%=取余和赋值操作符,它把左操作数和右操作数取余后赋值给左操作数

总结

我初来乍到,算是第一篇文章作品吧,希望各位多多指教!
最后在推荐一些我认为很全的文章链接,感觉大佬些写得很好,而且有视频、书籍可以看看:
宜春Java总结篇特别推荐的
Smile__1 Java学习体系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Await!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值