Java概述
java的起源和发展
java的特点
简单易学
java的风格类似于C++,因此C++程序员初次接触Java语言,就会感到很熟悉。从某种意义上讲,Java语言是C及C++语言的一个变种,因此,C++程序员可以很快地掌握Java编程技术。
Java摒弃了C/C++中容易引发程序错误并且难以掌握的一些特性,如指针、结构、以及内存管理等。
Java提供了丰富的类库,可以帮助我们很方便的开发Java程序。
Java是完全面向对象的语言,所以他支持继承、重载、多态等面向对象的特性。C++语言是面向过程和面向对象混合的语言,C是纯面向过程的语言。
安全性高
Java是一种强类型的语言,其类型检查比C/C++还要严格。类型检查帮助我们检查出许多开发早期出现的错误。
Java提供了垃圾回收机制,有效的避免了C/C++中最头疼的内存泄漏问题
java禁止非法内存访问,在没有授权的情况下是不能访问内存的。所有这些措施,使Java程序员不用再担心内存的崩溃。
总结:java去掉C和C++中影响程序健壮性的部分,使程序更安全,例如指针、内存申请和释放。
跨平台
Java作为一种网络语言,其源代码被编译成一种结构中立的中间文件格式。只要有Java运行系统的机器都能执行这种中间代码。Java源程序被编译成一种与机器无关的字节码格式,在Java虚拟机上运行。
JVM的平台相关性:Java源代码和字节码是与机器无关的,JVM是与机器有关的。
多线程的
Java语言的一个重要特性就是在语言级支持多线程的程序设计。多线程就是使得一个程序能够同时执行多个任务。
java的应用领域
J2SE,主要用来开发桌面应用软件用的
J2ME嵌入式开发,像手机里的软件、掌上电脑等等
J2EE属于网络编程,JSP等等,就是做网站用到的编程。
java学习目标
了解程序语言及发展历史
熟练掌握java语言的语法规则
掌握java常用类的使用
掌握编程逻辑思维能力
1. 能看懂程序(流程-功能-试数)
2. 会调试程序
3. 理解并应用面向对象的设计思想
为将来学习J2EE做准备
环境变量的设置
为什么要设置path?
在dos的任何目录下我们都可以运行操作系统自带的命令
要想在dos下运行用户自己的程序,则必须进入到改程序的当前目录下方运行
如果希望在dos的任何目录下都可以运行自己创建的程序,则需要我们自己手动设置操作系统自带的环境变量path
path的设置
操作系统是利用path变量来寻找当前程序所存放的路径,并且以最先找到的为准
路径和路径之间用分号(;)隔开
set path:表示查看当前path变量中的内容
有关classpath设置的问题
操作系统是利用classpath变量来寻找当前后缀为class的字节码文件所存放的路径,并且以最先找到的为准
从JDK1.6开始,classpath不需要再手动设置
初学者可以暂时不去理会classpath的设置
如果要导入第三方的jar包,则需要手动设置classpath
java中的注释
三种注释: // /* */ /** */
//单行注解,不需要配对
/* */多行注解,需要配对
/** */用于将注解变为说明文档,用javadoc实现
java数据类型
基本数据类型:byte,short,int,long,float,double,char,boolean
引用数据类型:类(class),接口(interface),数组
输出数据的格式控制
输出控制符针对的数据类型
%dint, long int, short, byte
%x, %#X, %X, %#Xint, long int
%cchar
%ffloat, double
%sString
在java中打印语句有三种,分别是println,print,printf,三者之间有区别
print 一般的标准输出,不换行。将它的参数显示在命令窗口,并将输出光标定位在所显示的最后一个字符之后。
println 一般的标准输出,最后会换行。将它的参数显示在命令窗口,并在结尾加上换行符,将输出光标定位在下一行的开始。
printf 格式化输出的形式
//十六进制输出控制符
class TestHex
{
public static void main(String[] args)
{
int i = 253;
System.out.printf("%x\n", i); // 输出fd
System.out.printf("%X\n", i); // 输出FD
System.out.printf("%#x\n", i); //输出0xfd
System.out.printf("%#X\n", i); //输出0XFD
}
}
1
2
3
4
5
6
7
8
9
10
11
12
常量
整型常量
一个常量整数默认是int类型,如果数字过大,则必须要在末尾加L,否 则会出错
浮点常量
一个实数默认是double类型,如果希望一个实数是float类型,可以在数字后面加f(F)
将一个double类型数值赋给float类型变量,编译会报错
float x = 2.2; //error
float x = 2.2f; //OK
1
2
字符常量
字符常量必须用单引号括起来,Java中字符和字符串都用Unicode编码表示,在Unicode编码中一个字符占两个字节
特殊字符的常量表示法:
反斜线'\\'
退格'\b'
回车'\r'
制表符'\t'
换行'\n'
单引号'\''
1
2
3
4
5
6
//字符常量的'\uxxxx'表示
public class A
{
public static void main(String[] args)
{
char ch1 = '中';
char ch2 = '\u4e2d';//'\uxxxx'表示十六进制的xxxx所对应的Unicode编码下的字符
System.out.printf("%c %c\n", ch1, ch2); //运行结果:中 中
}
}
1
2
3
4
5
6
7
8
9
10
布尔类型
用boolean表示,不能写成bool
布尔型数据只有两个值true和false,且他们不对应与任何整数值
布尔型变量的定义如:boolean b = true;
布尔型数据只能参与逻辑关系运算:&& || == != !
注意:if while for 中进行真假判断时只能使用逻辑表达式
不同类型变量存储范围
byte占用一个字节,数字大小为-27 ~ 27-1
short占用两个字节,数字大小为-215~215-1
int占用四个字节,数字大小为-231~231-1
long占用八个字节,数字大小为-263~263-1
float占用四个字节,数字大小为1.4E-45 ~ 3.4E+38,-1.4E-45 ~ 3.4E+38。用二进制的质数形式表示一个浮点数的格式,如:101 * 22
double占有八个字节
char占用两个字节,数字大小为0~216-1, 是Unicode编码
boolean占一个字节,其取值只有两个,true和false
在把容量大的类型转换为容量小的类型时必须使用强制类型转换
整形、实型、字符型数据可以混合运算。运算中,不同类型的数据先转换为同一类型,然后进行运算,转换从低级到高级:
低----------------------------------->高
byte -> char -> int -> long -> float -> double
运算符
算术运算符:+ - * / %
关系运算符: > >= < <= != ==
逻辑运算符: ! && ||
赋值运算符:= += * = /= %=
位运算符:& | ~ ^
算术运算符(+)
+可以表示数值的相加,可以表示字符串的联接,如:“123” + “abc” 的结果是“123abc”,还能把非字符转换成字符串,如:“x” + 123;的结果是“x123”
System.out.println('a' + 1);//98
System.out.println("" + 'a' + 1);//a1
1
2
除法运算符(/)
除法/的运算结果和运算对象的数据类型有关,若两个数都是int,则商就是int,若商有小数,则截取小数部分;若两个对象中有一个或两个都是浮点型数据,则商也是浮点型,不截取小数部分
如:16/5 == 3, 16/5.0 == 3.20000, -13/4 == -4, -13/-3 == 4
取余运算符(%)
Java中允许取余运算符的被除数和除数是实数,但所得余数的正负只和被除数相同
double x = 1 % -0.3
System.out.println(x);// 0.10000
1
2
逻辑与逻辑或
当&& 左边表达式为假时,&&右边的表达式是不执行的。因为无论&&右边的表达式为真还是为假,整个表达式都为假
同理,当||表达式左边为真时,||右边的表达式是不会执行的
存储单位介绍
一个0或一个1就代表一位,一位只能存储一个0或一个1,8位代表一个字节,位用bit表示,字节用byte表示
位运算符(1)
& (按位与),把两个数字所有的二进制位相与
1 & 1 = 1, 1& 0 = 0, 0 & 0 0, 0 & 1 = 0
| (按位或), 把两个数字所有的二进制位相或
1 | 1 = 1, 1 | 0 = 1, 0 | 0 = 0, 0 | 1 = 1
~(按位取反), 把一个数字的所有二进制位取反
~ 1 = 0, ~ 0 = 1
^(按位异或), 把两个数字的所有二进制位异或
````1 ^ 1 = 0, 1 ^ 0 = 1, 0 ^ 1 = 1, 0 ^ 0 = 0``
int i = 11;// 0000 1011
int j = -2;// 0000 0010-> 1111 1101 -> 1111 1110
System.out.printf("%d\n", i & j);//10, 0000 1010
1
2
3
位运算符(2)
右移>>,在java中右移没有任何歧义。对于有符号数,在右移时,符号位将随同移动。当为正数时,最高位0,最高位补0,而为负数时,最高位为1,最高位补1
>>> 无论最高位是0还是1,左边移空的改为都补0
<
运算表达式书写规则:
不要写过于复杂的表达式
为了程序的可读性,可以适当的使用括号
流程控制
顺序
选择
if…else
Switch
循环
for
while
Do…while
————————————————
版权声明:本文为CSDN博主「凌凌凌凌凌☁️☁️」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42135345/java/article/details/106302878