javaSE基础

1.介绍

2.学习方法

  1. 先理解,再实践

  2. 认知天性:编码-》巩固(回顾,复习,过遍数)-》检索

  3. 刻意练习:3F

    focus:

    feedback:反馈,主动,被动,英语;汉译英;

    ​ leedcode;

    ​ 两数之和

    ​ 教练:老师;

    fix:修复

3.课程体系

714课时

  • javaSE :5周
  • 数据库: 2周
  • javaweb:Servlet,jsp(4周)
  • javaEE 框架(maven ,SSM) 4周
  • 微服务(redis,boot,cloud,mq,dubbo,git,linux) 5周

4.javaSe 课程

  1. java基础 (循环,数组)
  2. OOP
  3. API

5.基础

  • 编程的本质=数据结构+算法
  • 什么是编程:就是让计算机按自己的意图去工作;

6.编程语言的发展史(了解)

  1. 机器语言:0101,
  2. 汇编语言:助记符
  3. 高级语言:java,c,c++,python,basic

7.为什么是java

流行的语言:

java,python,c,C++,javascript,go.....
语言没有好坏之分,只有适不适用?

厨房中的刀,哪把刀更好:砍刀,切菜刀,西瓜刀,水果刀?

每个语言都有适用的场景
数据分析:python,
3D游戏:C++;
前端页面:javascript;
应用程序的后台:java

8.回顾

1.学习方法:编码-》巩固-》检索3F:focus->feedback->fix
2.课程se:1.基础 2.oop,3API
3.编程的基础:数据结构+算法=程序
4.编程语言的发展史1.机器语言2.汇编语言3.高级语言
5.java企业后台安卓大数据桌面
6.java语言的发展史

9.java语言的发展

高斯林(高司令):嵌入式程序;

99年,三个版本:javase,javame,javaee;

LTS
JDK8
JDK11
JDK17

10 java 语言的特点

  • 面向对象
  • 简单
  • 跨平台

11.java语言的三个版本

  • A:javaSE:标准版本:基础,桌面级应用;
  • B:javaEE:企业版:服务器端的大网络,分布式
  • C:javaME:微型版本:嵌入式设备,小设备;

12.环境安装

12.1.JDK

​ java development kid:java开发包;

​ 作用:开发,运行java程序;

JRE:java runtime environment;java 运行环境;

​ 作用:运行java程序;

​ JDK包含了JRE;

JVM:java virtual machine:java虚拟机

​ 作用:用来运行java程序;不包含类库和命令;

​ JDK中包含了JRE,JRE中包含了JVM;

13.安装JDK

建议:安装 11,8,

安装注意事项

  1. 傻瓜式安装,按步骤来就行
  2. 安装路径不要有空格,不要使用中文路径;
  3. 安装后会有两个目录
    • bin:包含了java命令:javac(编译),java(运行),javadoc(生成文档)
    • lib:包含了java类库

配置:

​ 配置环境变量?

14.DOS命令

DOS:disk operation system:命令行;

​ 命令:

​ cd:改变目录

​ dir:查看当前目录下的内容

​ 盘符:切换到其它盘,例如 D:

d:切换到D盘
cd ..:切换到上层目录
cd bin:进入取bin子目录
dir:显示当前目录中的内容;问题?
java.exe,javac.exe在  d:/java/jdk-11.0.8/bin下,如果想使用java,javac命令,必须先进入到d:/java/jdk-11.0.8/bin下才可以使用,如果希望在任何一个目录下都使用此命令,则需要配置环境变量才可以;环境变量中有一个叫path的;
path的作用是,当运行一个命令时,先从当前路径找,如找不到,再去path中找;如果在path中设置一个值  d:/java/jdk-11.0.8/bin;当我们在 e:盘下,运行  java1.先在 e:/下找java
2.如找不到,再到path下找 
环境变量
path:路径;
classpath:类路径;.;d:/java/jdk-11.0.8/lib;

window: 图形界面

android:图形

linux:有图形

15.第一个java程序;

public class HelloWorld{ public static void main(String[] args){System.out.println("这是我的第一个java程序,我好高兴呀,今天晚上给自己加一个鸡腿吧");}
}
1.HelloWorld:是类名,类名必须要与文件名相同;(HelloWorld.java);
2.System.out.println(""):代表输出;""中可以写任何字符串;
3.所有的标点符号都是英文半角;
4.java是区分大小写的;

16.HelloWorld详解

public class Hello{public static void main(String[] args){System.out.println();}
}
//Hello是类名
//public static void main(String[] args):是主函数,程序的入口,如果想直接运行此类,必须有此方法;
//System.out.println():输出内容后换行
//System.out.print():输出内容后不换行
//无论是print还是println都只能输出一个内容,内容可以是字符串,数字,布尔等等;//9+9;
//"hello"+"hello"+9

17.java命令

javac:编译
java:运行
javadoc:生成文档
javac语法javac 文件名.java
javac HelloWorld.java作用:将.java的源代码编译成.class文件,如果代码有错误,将无法完成编译;
java 语法java 类名
java HelloWorld
注意:千万不要写.class
作用:运行java类,要求此类必须有主函数;
javadoc:生成文档javadoc 类名.java

18.注释

作用:为了让程序员更容易理解代码的含义,可以使用注释加以说明;注释不会影响代码的运行注释有三种;//:单行
/*  */:块注释
/** */:文档注释

二.java编程基础

1.关键字

什么是关键字:在java语言有,有特殊含义的一些单词就是关键字;

关键字的特点:全部都有小写;

2.标识符

什么标识符:用来标识某种东西的符号就是标识符

比如:类,方法名,变量名,参数名,

定义标识符的规则

  • 标识符中可包含字母,数字,_,$,中文也可以(不建议)
  • 不能以数字开头
  • 不能是关键字
  • 长度无限制,最好做到“见名知义”

3.变量

变量:就是内存中的一个区域,为了便于使用,需要给变量起个名字

变量用法:

  1. 变量一定要先定义,再使用

  2. 定义变量的格式是

    数据类型 变量名=初始值;
    
  3. 变量的值是可以改变的

  4. 在一个作用域中,变量名是不能重复的

4.数据类型

java的数据类型分为两大类,分别是

  • 基本数据类型
  • 引用数据类型
    • 类,接口,数组;

4.1基本数据类型

  • 整数

    • byte :1
    • short:1
    • int :2
    • long:2
  • 浮点数

    • float:45.6f
    • double:444.4
  • 字符

    • char ‘a’
  • 布尔

    • boolean :true,false

整数:

  • byte:1个字节

    • 位(bit)

      01:bit,每个一个bit只能存储两个值;

      一个字节等于8位二进制

      ​ 10101011

      byte = -128~127;

  • short:2个字节

  • int:4个字节

  • long:8个字节

关于容量的换算关系;

字节 B byte

1KB->1024B;

1MB->1024KB

1GB->1024MB

1TB->1024GB

1PB->1024TB

16G; 14. 15K;

进制的转换

1.10进制-》二进制除2取余法;2.二进制-》十进制乘权相加法110101 1+4+16+32=53
3.二进制-》十六进制1011 1010B      A100011111
4.十六进制-》二进制6E-》

4.2字面值(literal)

字面值也叫直接量;

1.整数的字面值的类型默认为是int
2.十六进制 0x开头;
3.八进制以0开头,例如  int a=011;
4.如果想表示一个long值,可以使用 L结尾,例如 long a=12312312399L;

4.3浮点型

字节 范围
float 4 -3.403E38 ~ 3.403E38
double 8 -1.798E308 ~ 1.798E308
总结
1.浮点数只能表示出一个近似数,而不能表示出一个准确的数
2.浮点数的字值的类型是double,如果想表示一个float,应该使用 F结尾;

4.4 字符型

用 一对‘’引起的单个字符就是字符,字符可以以数字,英文字母,标点符号,还可以表示任何语言的单字符;例如,中文,法文,俄文,日文;

每个字符存储时,都会转换成与之对应的数字;
字符与数字之间的对应关系就是一种字符集;UTF-8;GBK,GB2312;
char有三种表示方式
1.‘’
2.‘\转义字符’ ,例如 '\n':换行
3.unicode码; ‘\uXXXX’

4.5boolean

boolean叫布尔
只有两个值,分别是true,false;
通常来说,可以使用boolean来存储一个状态;是否打开音乐
boolean isMusic=false;

4.6String类型

String代表字符串,即用双引号引起的多个字符序列;
String不是基本数据类型,而是一种引用类型;String name="刘备";

5.java代码三级跳

1.表达式类似于语文中的汉字,词组,例如 a+b,c*d
2.语句类似于语文中的句子。以;号结束;一个语句中会包含多个表达式,int a=5;int b=a+b;c=sum+a;
3.代码段相当于语文的作文,一个代码段中包含多个语句;

6.数据类型的转换

两种转换
1.自动转换:低精度向高精度可以自动转换,安全
2.强制转换:高精度向低精度转换时可以采用强制转换,强转可能会造成精度丢失;
数值类的的精度;
byte->short->int->long->float->double;char

自动类型转换发生在两种情况

  • 赋值
  • 运算;

强制类型转换

  • 高精度向低精度转换时,可使用强转
  • 强转的语法是 (数据类型);例如 long b=6677; int a=(int)b;

7.Scanner

//有交互的程序;
交互的方式主要用两种
1.命令行;
2.图形;
Scanner叫扫描器,他可以接收用户输入的数据;例如数字,字符串,布尔值等;
使用Scanner的步骤
1.导包 import java.util.*;
2.创建Scanner对象;Scanner s=new Scanner(System.in);
3.接收数据int a=s.nextInt();
import java.util.*;  //1.导包public class Circle
{public static void main(String[] args) {//2.创建一个扫描器;Scanner scanner=new Scanner(System.in);System.out.println("请输入半径");//3.接收一个半径double r=scanner.nextDouble();double area=r*r*3.14;System.out.println("圆的面积是:"+area);}
}

8.运算符

运算符可以有两种分在方式
1.功能算术运算符赋值运算符比较运算符位运算符逻辑运算符条件(三元)运算符
2.操作数的个数一元操作符:    ++b, 二元操作符:    a+b三元操作符      a>b?a:b

8.1算术运算符

++,--
可以放在操作数之前,也可以放在操作数之后;a++操作符有作用;
1.对a做一个加操作;
2.a++也是一个表达式,即将表达式的结果赋给一个变量;b=a++;b=++a;a++;
++a;

8.2 赋值运算符

=
例如: a=9+8;
特点:
1.操作符的结合性是从右到左;
2.操作符左侧一定是一个变量;

8.3 比较运算符

==
!=
>
<
>=
<=
instanceof所有比较运算符的计算结果的类型都是boolean; true,false;注意,=是赋值==是比较;

8.4 逻辑运算符

与: & ,&&
或:  |  ||
非:  !
异或: ^与的语法表达式1  & 表达式2;表达式1  && 表达式2;要求,两个表达式都是布尔表达式;即,两个表达式的结果同时为true时,与后的结果才true;
或:  |  ||
作用:两个操作数的结果,只要有一个为true,那么或的结果就为true;
非:
取反;
!true;=false;
!false:=true;异或:
作用:两个操作数不同时为true,否则为false;
&,&&的区别?
&,&&都是逻辑与,计算的结果是相同的;但运算的过程是有区别的?
例如
a&&b;
假如,a的结果是false;那么是否需要计算b,才知道整个表达式的结果;区别:
&:无论第一个操作数结果是什么,都会计算所有表达式;
&&:如果第一个操作数的结果是false,那么将不会计算第二个表达式;

8.5.位运算符

操作对象:整数(byte,short,int,long);
作用:将整数转换成二进制后,按位进行运算;常用的操作有,位移,按位与,或,异或;
位运算的优点:效率高;>>:按位右移
<<:按位左移
>>>:无符号右移
&:按位与
|:按位或
^:按位异或895;

8.6 条件运算符

语法
布尔表达式?表达式1:表达式2;int c=a>b?a:b;

3.分支语句

1.流程控制

三种
顺序结构
分支(选择)结构:branch
循环结构:loop
顺序:程序从上到下,依次执行;

2.分支语句

分支语句分为if,switch

3.if语句

3.1单分支

语法

if(布尔表达式){语句块
}
。。
适用场景:为程序增加一个可能执行的代码,此代码有可能执行,有可能不执行;

3.2双分支

if(布尔表达式){语句块1;
}else{语句块2;
}

3.3多分支

语法

if(布尔表达式){}else if(布尔表达式2){}else if(布尔表达式3.。。。){}else{}
关于if的小结
1.完整的if语句中,包含 if-else if-else
2.if语法中,if是必须存在的, else if可有0~n个,可以有0~1个else
3.如果存在else,else一定放在最后;
4.多分支语句中,最多只能执行一个分支,执行此分支后,分支语句结束;

3.4 if的嵌套

在一个分支语句块中包含另一个分支语句;
适用场景:适合解决较为复杂的逻辑问题;
例如:登录1.成功 用户名,密码,验证码2.失败1.验证码?2.用户名,或密码错误,但少于3次3.用户名,或密码错误,但大于等于3次;锁定(1个小时);

语法

if(条件){System.out.println();i++;if(){}
}else if(条件){if(){}else{}
}else{}

3.5if语句的简化

如果if语句块中只包含一行代码,那么{}可以省略,(但不建议省略)
if(true)System.out.println("ok");
elseSystem.out.println("else");

4.switch 语句

语法
switch(表达式){case 值1:语句;break;case 值2:语句;break;default:语句3;
}
//输入一个成绩; 5,4,3,2,1,0;
关于break;
在switch语句中,如果case 没有break,那么将会穿透;
解决问题;
输入月份,判断此月有多少天?
2:28,29;
1,3,5,7,8,10,12:31
4,6,9,11:30case:2,4,6,9,11default:
import java.util.*;
public class Switch2
{public static void main(String[] args) {Scanner s=new Scanner(System.in);System.out.println("输入月份");int month=s.nextInt();switch(month){case 2:System.out.println("28或29天");break;case 4:case 6:case 9:case 11:System.out.println("30天");break;default:System.out.println("31天");}}
}
使用switch的注意事项
1.switch只能使用等值比较,而且对数据类型有要求(byte,short,int,char,String)
2.注意 case穿透;(break)
3.switch的结果清晰,但没有if应用的广泛;

4.循环

语法很简单,练习是关键

4.1循环语句的三个部分

1.初始化部分(1次)
2.条件部分(多次)
3.循环体部分;(多次)

4.2 java中,循环语句的分类

1.while
2.do-while
3.for

4.3while语句

语法
[初始化语句]
while(表达式){循环体语句;
}
...
1+2+3+4.....+100;int sum=0;//定义一个变量;用来存储累加的和int i=1;
sum+=i;(1.2,3,4,5,5.6,7)
盈盈为了考验令狐冲夺冠的决心,要他说一百遍“我能行!”;
1+...100;

4.4.死循环

死循环:无法结束的循环被称为死循环;

4.5变量的作用域

内层可以使用外层的变量,外层不能使用内层的变量

4.6do-while

do-while循环
[初使化变量]
do{循环体;
}while(布尔表达式);特点:至少进入一次循环体;
//猜数游戏
Random r=new Random();
int n=r.nextInt(10);//产生一个随机数,(整数)
int i=0;//代表用户猜的那个数值
do{//猜数;
}while(n!=i)计算一下,用户用了几次机会;
import java.util.*;public class GuessNumber
{public static void main(String[] args) {Random r=new Random();//创建一个随机数生成器;Scanner s=new Scanner(System.in);//创建一个扫描器,用来接收用户猜的数字int n=r.nextInt(100)+1;//获得一个随机数;int i=0;//i代表用户每次猜的那个数,如果i==n,说明猜对了;do{//每次猜数System.out.println("说出一个数字");i=s.nextInt();if(i>n){System.out.println("高了");}else if(i<n){System.out.println("低了");}}while(i!=n);System.out.println("你猜对了,这个数就是:"+n);}
}

4.7 for循环

语法for(初始化变量;条件表达式;循环体的最后一个表达式;){循环体;
}特点:非常适用于已知循环次数的程序;int sum=0;
for(int i=0;i<100;i++){sum+=i;
}1.int i=0;
2( i<100;  sum+=i; i++)

4.8 break 与 continue

break与continue都是关键字,可以在循环体中使用;(for,while,do-while)break:结束当前循环(退出循环);
continue:结束当次循环,进入下一次循环判断;

4.9嵌套循环

语法结构:在一个循环体中,包含另外一个循环语句,这种结构就是嵌套循环;
今日作业:
第三章:下周三之前提交;分支
第四章:下周日前提交;(20道编程题)

面向对象OOP

面向对象,强调由谁来做
面向过程,强调怎么做

面向对象有什么优点

1.更容易理解
2.解决复杂的问题,更有优势

面向对象的基础知识

1.什么是对象

所有具体的事物都是对象(object)

2.类

类是一组具有相同属性和行为的一组对象的抽象表示
类和对象的关系:类是对象的抽象表示对象是类的一个具体实例
类是抽象的,对象是具体的

class :

定义类的语法

类中都应该有什么

1.定义一个学生类型
public class student{int stuno;     //定义类的属性String name;String sex;int age;
}

方法

定义方法的语法

重载(overload)

构造方法及继承

构造方法

构造方法是一种特殊的方法
构造方法会给属性赋初值
构造方法会自动调用

构造方法与类同名

构造方法不返回值

Student(int no,String name,int age){}
构造方法前面不能加void (添加后会变成一个普通方法)
(void)Student(){}

默认的构造方法

就近原则

就近原则:当访问不同作用域同名变量时;寻找最近的同名变量

this关键字

this代表当前对象的属性引用;
this 用法:this.属性this.普通方法this().构造方法只有在其他的构造方法中才能使用this()来调用;this()必须位于构造方法第一条语句;

Person p=new Person 一共做了几件事

1,开辟的新的空间2,调用构造方法3,返回引用赋值给p

继承

Java只能有一个继承,不允许多个继承

super关键字

super代表父类对象的引用
通过super关键字,再子类中可以fang'w

多态

子类的对象可以替代父类的对象进行使用
Student s=new Student();
Person p=s;
父类 s=new 子类

编译时类型

Person p=new Student();
确定有没有方法能调用

运行时类型

Person p=new Student();
确定调用的方法对象
p.say;

类型转换

向上转换:直接转换无风险
向下转换:有风险

封装

java中,封装主要是表现再三方面
类封装
方法
修饰符封装

final

final修饰属性,类,方法
它可以修饰,属性,变量,参数,只能赋值一次 不能被修改
修饰类:不能被继承
修饰方法:不能被重写

static

static修饰属性,说明当前属性是的类属性,只存在一份整个类共享
并且可以直接通过类访问。
属性:类属性;类名,属性名
方法:类方法;

静态块:

{

}

加载顺序
静态成员和static块
												

Java SE 部分基础知识相关推荐

  1. 4 万字超强总结!Java 这些必备基础知识不可少

    点击「关注」公众号,回复"1024"获取2TB学习资源! 什么是Java Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概 ...

  2. java 网络爬虫 正则表达式_【干货】Java网络爬虫基础知识

    原标题:[干货]Java网络爬虫基础知识 引言 Java 网络爬虫具有很好的扩展性可伸缩性,其是目前搜索引擎开发的重要组成部分.例如,著名的网络爬虫工具 Nutch 便是采用 Java 开发,该工具以 ...

  3. 第76节:Java中的基础知识

    第76节:Java中的基础知识 设置环境,安装操作系统,安装备份,就是镜像,jdk配置环境,eclipse下载解压即可使用,下载tomcat 折佣动态代理解决网站的字符集编码问题 使用request. ...

  4. Java核心技术卷一基础知识第10版demo实例

    Java核心技术卷一基础知识第10版demo实例 第三章 JAVA的基本程序设计结构 3.7输入与输出 3.7.1读取输入 3.8控制流程 3.8.3循环 3.10数组 3.10.6多维数组 第四章 ...

  5. java的一些基础知识(引用BlogJava 落花飞雪)

     java的一些基础知识(引用BlogJava 落花飞雪) <Practical Java>笔记 1. 声明是什么? String s = "Hello world!" ...

  6. 黑马程序员 一、java 概述与基础知识

    获取更多资源关注Java帮帮IT资源分享网 一.黑马程序员-java 概述与基础知识 1.何为编程? 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果 的过程. 为了使 ...

  7. java to go 基础知识与区别入土指南

    java to go 基础知识与区别入土指南 文章目录 java to go 基础知识与区别入土指南 @[toc] 基础篇 关于基础类型 关于复合数据类型 关于切片 关于Map 关于sync.map ...

  8. 【Java】【基础知识】【Java的基本使用】

    [Java][基础知识][Java的基本使用] 基于jdk8 仅个人理解,或有疏漏 基于 java疯狂讲义 第三版和第四版 java核心技术卷一 第十版和第十一版 廖雪峰java课程 一.基本数据与结 ...

  9. Java 网络编程基础知识

    Java 网络编程基础知识 基础概念 计算机网络的基本概念 ​ 网络:多台计算机使用网络设备互联在一起,计算机之间可以进行通信,这样就组成了一个计算机网络. ​ 网络设备:集线器(HUB),路由器,交 ...

最新文章

  1. IO流(五)__文件的递归、Properties、打印流PrintStream与PrintWriter、序列流SequenceInputStream...
  2. [20131014] 出现错误,显示事务没有回滚
  3. html怎么实现多语言图片切换,JavaScript实现--中英语言切换功能
  4. 前端学习(558):margin重叠
  5. 将结构体写入文件_将COCO检测结果写入json文件
  6. Eclipse Java EE的tomcat使用小结
  7. VA番茄助手VisualAssist的神器工具教程
  8. 修改毕设,降低查重率方法
  9. dubbo服务端线程池耗尽Server side threadpool is exhausted
  10. 【C语言程序设计】基本算术运算
  11. 关于Ransomware备份 哪些是该做和不该做的?
  12. 黑白照片怎么上色?学会这招轻松解决
  13. 二、Linux镜像软件的安装
  14. symfony 分表 查询 调用
  15. ios -静默方式发送邮件
  16. 最简单日柱推算法_乒乓球技术中的反手台内拧,如何练最简单?满场飞的乒乓球步法怎么练?反手拧拉两段练习法,一练就会 胖子说乒乓视频教学...
  17. 大学模电实验合集丨实验四 直流差分放大电路
  18. 基于STM32单片机的语音播报超声波测距系统【ISD1820录放模块继电器蜂鸣器扬声器】
  19. 【Python游戏】Python魔塔样板,自带Demo游戏内容(Powered by Pygame)| 附带源码
  20. win7显示安装程序正在启动服务器失败,win7安装程序正在启动服务怎么解决

热门文章

  1. FileZilla Server 中文版
  2. 移动开发的项目管理心得
  3. 计算机术语中英文对照
  4. 关于举办“第五届全国现代物流绿色包装与循环共用大会”的通知
  5. iOS xxx is missing from working copy
  6. Git版本控制管理——diff
  7. Android应用App开发工具
  8. POI 导入带公式的EXCEL 精度出问题
  9. 物联卡中心:物联卡是正规卡吗?与流量卡有什么区别?
  10. e1000网络驱动分析