Java基础

基础

一、java的相关概念

1.1 java是什么

  • Java是一门编程语言,Java发布于1995年,名字来自Java咖啡。据说Java设计人员在讨论给语言起什么名字时,正在喝Java咖啡。所以Java就变成了语言的名字,Java的Logo也是一杯咖啡。Java编译好的文件开头会加上CA FE BA BE(Cafe Babe),也许是设计者留下的一个彩蛋吧。
  • Java摒弃了指针、多重继承的概念,并有庞大的库供开发者调用,所以用起来非常“方便”。

1.2 java特性

  • 简洁有效,可移植性,面向对象,解释型,适合分布式计算,性能好,健壮性,多线程处理能力,安全性高,动态语言等。

1.3 java的运行环境

  • JDK,JRE

1.4 java编程

第一个程序:HelloWorld

class HelloWorld {
         public static void main(String[] args) {
              System.out.println("HelloWorld");
   }
}

二、java编程基础

2.1 标识符和关键字

(1)标识符

  • 就是给类,接口,方法,变量等起名字的字符序列
  • 组成规则:
    A:英文大小写字母
    B:数字
    C:$和_
  • 注意事项:
    A:不能以数字开头
    B:不能是java中的关键字
    C:区分大小写
  • 常见的命名规则(见名知意)
    A:包 全部小写
    单级包:小写; 举例:liuyi, com
    多级包:小写,并用.隔开; 举例:cn.itcast, com.baidu
    B:类或者接口
    一个单词:首字母大写; 举例:Student,Demo
    多个单词:每个单词首字母大写; 举例:HelloWorld,StudentName
    C:方法或者变量
    一个单词:首字母小写;举例:name,main
    多个单词:从第二个单词开始,每个单词首字母大写;举例:studentAge,showAllNames()
    D:常量
    全部大写
    一个单词:大写;举例:PI
    多个单词:大写,并用_隔开;举例:STUDENT_MAX_AGE

(2)关键字

  • 被Java语言赋予特定含义的单词
  • 特点:
    全部小写。
  • 注意事项:
    A:goto和const作为保留字存在。
    B:类似于Notepad++这样的高级记事本会对关键字有特殊颜色标记

2.2 数据类型

在这里插入图片描述
(1)Java是一种强类型语言,针对每种数据都提供了对应的数据类型。
(2)分类:
A:基本数据类型:4类8种
B:引用数据类型:类,接口,数组。

(3)基本数据类型
A:整数 占用字节数
byte 1;short 2;int 4;long 8
B:浮点数
float 4;double 8
C:字符
char 2
D:布尔
boolean 1

注意:
整数默认是int类型,浮点数默认是double。

长整数要加L或者l。
单精度的浮点数要加F或者f。

8:数据类型转换(掌握)
(1)boolean类型不参与转换
(2)默认转换
A:从小到大
B:byte,short,char – int – long – float – double
C:byte,short,char之间不相互转换,直接转成int类型参与运算。
(3)强制转换
A:从大到小
B:可能会有精度的损失,一般不建议这样使用。
C:格式:
目标数据类型 变量名 = (目标数据类型) (被转换的数据);
(4)思考题和面试题:
A:下面两种方式有区别吗?

float f1 = 12.345f;
float f2 = (float)12.345;

B:下面的程序有问题吗,如果有,在哪里呢?

byte b1 = 3;
byte b2 = 4;
byte b3 = b1 + b2;
byte b4 = 3 + 4;

C:下面的操作结果是什么呢?
byte b = (byte)130;
D:字符参与运算
是查找ASCII里面的值
‘a’ 97
‘A’ 65
‘0’ 48

System.out.println('a');
System.out.println('a' + 1);

E:字符串参与运算
这里其实是字符串的连接

System.out.println("hello"+'a'+1);
System.out.println('a'+1+"hello");
System.out.println("5+5="+5+5);
System.out.println(5+5+"=5+5");

2.3 运算符

(1)算术运算符
A:+,-,*,/,%,++,–
B:+的用法
a:加法
b:正号
c:字符串连接符
C:/和%的区别
数据做除法操作的时候,/取得是商,%取得是余数
D:++和–的用法
a:他们的作用是自增或者自减
b:使用
**单独使用
放在操作数据的前面和后面效果一样。
a++或者++a效果一样。
**参与操作使用
放在操作数的前面:先自增或者自减,再参与操作
int a = 10;
int b = ++a;
放在操作数的后面:先参与操作,再自增或者自减
int a = 10;
int b = a++;

(2)赋值运算符
A:=,+=,-=,*=,/=,%=等
B:=叫做赋值运算符,也是最基本的赋值运算符
int x = 10; 把10赋值给int类型的变量x。
C:扩展的赋值运算符的特点
隐含了自动强制转换。

面试题:
short s = 1;
s = s + 1;

short s = 1;
s += 1;
请问上面的代码哪个有问题?
(3)比较运算符
A: == , !=, >, >=, <, <=
B:无论运算符两端简单还是复杂最终结果是boolean类型。
C:千万不要把==写成了=
(4)逻辑运算符
A:&,|,^,!,&&,||
B:逻辑运算符用于连接boolean类型的式子
C:结论
&:有false则false
|:有true则true
^:相同则false,不同则true。
情侣关系。
!:非true则false,非false则true

&&:结果和&是一样的,只不过有短路效果。左边是false,右边不执行。
||:结果和|是一样的,只不过有短路效果。左边是true,右边不执行。
(5)位运算符(了解)
A:^的特殊用法
一个数据针对另一个数据位异或两次,该数不变
B:面试题
a:请实现两个变量的交换
**采用第三方变量
**用位异或运算符
左边a,b,a
右边a^b
b:请用最有效率的方式计算出2乘以8的结果
2<<3
(6)三元运算符
A:格式
比较表达式?表达式1:表达式2;
B:执行流程:
首先计算比较表达式的值,看是true还是false。
如果是true,表达式1就是结果。
如果是false,表达式2就是结果。
C:案例:
a:比较两个数据是否相等
b:获取两个数据中的最大值
c:获取三个数据中的最大值

2:键盘录入(掌握)
(1)实际开发中,数据是变化的,为了提高程序的灵活性,我们加入键盘录入数据。
(2)如何实现呢?目前就记住
A:导包
import java.util.Scanner;
位置:在class的上边
B:创建对象
Scanner sc = new Scanner(System.in);
C:获取数据
int x = sc.nextInt();

2.4程序结构

  • 顺序结构
  • 分支结构
  • 循环结构

2.5 数组

2.6 方法

三、面向对象编程

3.1 类和对象

3.2 封装性

3.3 构造方法和匿名对象

3.4 this和static关键字

3.5 String类

3.6 继承性

3.7 抽象类和接口

3.8 多态

3.9 异常处理

四、应用

4.1 多线程

4.2 集合类

4.3 I/O编程

4.4 反射机制

4.5 网络编程

4.6 常用类库

4.7 泛型

4.8 注解

4.9 新特性

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值