JAVASE _1
C语言 贴近硬件,运行快,效率高 操作系统,编译器,数据库,网络系统 【非常严格】 指针和内存管理
1982 C++ 【非常复杂的特性】【需要非常多的底层知识】 面向对象 兼容C 图形领域,游戏
JAVA 语法像C 没有指针 没有内存管理 真正的可移植性,到处运行() 面向对象 类型安全 高质量类库 层叫 C++ –
JAVA初生
图形界面程序 Applet
Java 2 桌面 J2SE
Java 2移动版 J2ME 占领手机
Java 2服务器 J2EE
构建工具:Ant,Mavern,Jekins
应用服务器:Tomcat,Jetty,Jboss,Websphere,weblogic
Web开发:Struts,Spring,Hibernate,myBatis
开发工具:Eclipse,Netbean,intellij ideam,JbUILDER
2006: Hadoop
2008: Android
JAVA特性和优势
简单性
面向对象
可移植性
高性能
分布式
动态性 反射机制
多线程
安全性
健壮性 通过捕获异常来解决异常
【心态】:去学习的过程中爱上它,这样才能主动学习
JAVA的成功:实力 + 运气 找到了互联网发展的节奏
JAVA三大版本
Write Once \Run Anywhere (虚拟机)
JavaSE:标准版 (桌面程序,控制台开发)
JavaME: 嵌入式开发 (手机,小家电) 【冷门】
JavaEE: E企业级开发 (web端,服务器开发)
JDK包含 JRE 全称:Java Development Kit [工具]
JRE 全称 : Java Runtime Environment [运行]
JVM: 全称 JAVA Virtual Machine [虚拟机]
通过虚拟机屏蔽了底层数据的差别
JAVA SE API 【接口】
JAVA开发环境搭建
- JDK下载与安装
- JDK 卸载 :
1.删除JAVA安装目录
2.删除变量 (电脑属性,环境变量,path)
3.java -version
安装JAVA
搞到安装包
设置JAVA_HOME
设置path变量
(%表示引用)
测试 java -version
src.zip 中有java源码
lib为库
include为C的头文件目录
我的JAVA对世界的第一声呐喊
1 | java public class Hello { //类名 |
源码如上
承接上文 在搞完了之后爷就遇到了+编码问题
所幸在之前的RWmod开发中早已经遇到过类似的,便直接上网求证,很快解决了。
原因为txt的UFT-8中是带ROM的,而 javac是无法识别带ROM 的UFT-8
只好安装了一个Notepad++,将编码修改后,便可以正常运行了。
唔,以后池沼开发一个自己的编译器,这个用着真不舒服。。
解决问题的网址
https://blog.csdn.net/White_Idiot/article/details/54670243
同时学到了一条新命令
javac -encoding “UTF-8” FirstSample.java
通过指定编码的方式运行javac
注意事项
- 大小写问题
- 中英文问题
使用IDEA开发环境
新建方法 -新建类 - 快捷键 (待补充)
JAVA基本语法
- 注释、标识符
- 数据类型
- 类型转换
- 变量、常量
- 运算符
- 包机制、JavaDoc
IDEA的项目设置五大类
Project 项目
|name | SDK | Language level | Compiler output ps:
1
名称 | 工具 | 语言等级 | 输出文件夹
输出文件夹 ps: Used for modules subdirectories, Production and Test directories for the corresponding sources.
翻译:用于相应源的模块子目录、生产目录和测试目录。
Modules 模块
Name: 模块的名称 Add Content Root(添加新的内容根)
Sources | Paths | Dependencies
源 | 路径 | 依赖关系
Sources : Language level
文件夹标记
Mark as: Sources \blue\ Tests \green\ Resources\资源\ Test Resources\测试资源\ Excluded\排除\
Paths : Compiler Output (编译器输出):Inherit project compile output path(和项目输出路径相同)
:Use module compile output path (使用模块编译输出路径)
JavaDoc:Manage external JavaDocs attached to this module, External JavaDoc override Javadoc override Java DOc annotations you might have in your module.(管理附加到此模块的外部JavaDoc,外部JavaDoc覆盖模块中可能有的JavaDoc注释。)
- Libraries 图书馆
Nothing to show(没啥可展示的)
右侧 Select a library to view or edit its details here (在此处选择要查看或编辑其详细信息的库)
Facets 面
No facets are configured(没有配置的面)
Detection (检查)
右侧 :Enable framework detection(启用检测框架)
Exclude from detection(排除在检测外)
Artifacts
即编译后的Java类,Web资源等的整合,用以测试、部署等工作。再白话一点,就是说某个module要如何打包,例如war exploded、war、jar、ear等等这种打包形式。某个module有了 Artifacts 就可以部署到应用服务器中了。
注释
// 单行注释
/* */ 多行注释
关键字
| abstract | assert | bollean | break | byte | | :——: | ——- | ——- | ——- | —– | | case | catch | char | calss | conse | | continue | default | do | double | else | | enum | extends | final | finally | float | | for | goto |if|implements|import| | instanceof |int|interface|long|native| | new |package|private|protected|public| | return|strictfp|short|static|super| | switch|synchronized|this|throw|throws| | transient|try|void|volatile|while|
1 | public class calss1 { |
JAVA 数据类型
JAVA为强类型语言
要求变量的使用严格符合规定,所有变量必须先定义后使用
弱类型就反之了(例:VB,JS )
JAVA的数据类型分为两大类
基本类型 primitive type
- 整数类型: byte1个字节范围 short 2个字节范围 int 四个字节范围 long 8个字节范围
- 浮点类型 : float 占四个字符范围 double 占8个字符范围
- 字符类型: char 占两个字节
- boolean类型:占1位,只有true 和 false
引用类型 reference type :类、接口、数组
变量需要初始化 = 变量需要定义
int 和 String 都是类型
int 整数 String 字符串
1 | import java.sql.SQLOutput; |
字节
位(bit)
字节(byte)
1B = 8BIT
字母:指的是计算机中的字母、数字、字和符号。
电脑32位和64位的区别,寻指的能力,可以装的内存不同,
类型转换
由于JAVA是强类型语言。所以进行有些运算的时候,需要用到类型转换。
低 ——————————————>高
byte , short ,char -> int -> long -> float -> double
- 运算中,不同类型的数据先转换为同一类型,然后进行运算。
1 | public class calss3 { |
1 | public class class4 { |
变量
变量定义:可以把变化的量。
JAVA是一种强类型语言,每个变量都必须声明其类型。
JAVA变量是程序中最基本的存储单元,其要素包括变量名变量类型和作用域。
变量划分内存的空间
作用域:
- 类变量
- 实例变量
局部变量
格式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17type varname [=value] [{,varName[=value]];
//数据类型 变量名 =值;可以用逗号隔开来声明多个同类型变量。
//ps:老师不建议在一行里定义多个值,会看起来比较复杂。
```java
public class class5 {
public static void main(String[] args) {
//int a,b,c; //定义a b c 为int类型
//int a=1,b=2,c=3; //定义a,b,c三个的量,但是程序可读性不好
int a=1;
int b=2;
int c=3; //单独定义可读性会好
String name ="23333"; //定义一个name为字符串
char x = 'X'; //定义x为一个字符
double pi =3.4; //定义pi为一个数字
}
}
1 | public class class08 { |
- 常量 (Constant):初始化 (initialize)后不能再改变值!不会编队的值。
- 所谓常量是一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
格式: ps:常量名一般使用大写字符
1 | final 变量名 值; |
1 | public class class09 { |
变量的命名规范
- 所有变量、方法、类名:见名知意。
- 类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写
- 例 lastname lastName
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
运算符
JAVA语言支持如下运算符:
- 算数运算符:+,-,*,/,%(取余=模运算),++,–
- 赋值运算符: =
- 关系运算符:>,<,>=,<=,==(相等),!=(不等于),instanceof
- 逻辑运算符:&&,||,! (与,或,如果是真则为假,如果是假则为真)
- 位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
- 条件运算符?:
- 扩展赋值运算符:+=,-=,*=,/=
IDEA创建包和MOVE
点击src 右键 new —> Package
此时弹出一个窗
Move : 项目名
To directory: 路径
Search in comments and strings (在字符串中搜索)
Search for text occurrences (所属出现的文本) //这两位默认勾选暂时不管
Open in editor(在编辑器中打开(也叫开放编辑)) //此处勾选即可
Refactor Preview Cancel
一次移动多个文件会出现 Refactoring Preview(重构预览)
点击 Do Refactor 即可 ps:原来这tm是个报错
1 | package base2; |
自增
1 | package base2; |
逻辑
1 | package base2; |
位运算符
1 | package base2; |
扩展运算符(偷懒计算(bushi))
1 | package base2; |
三元运算符
1 | package base2; |
ps :为了方便代码的使用和理解多打括号()
包机制
- 为了更好的组织类,JAVA提供了包机制,用于区别类名的命名空间。
- 包语句的语法格式为:
1 | package pkg1[. pkg2[. pkg3...]]; |
- 一般利用公司域名倒置作为包铭;例:com.baidu.www
- IDEA创建包会帮忙写好所属的包名:package xxxx;
- import xxxx.xxx.xx;使用包
快捷键 Alt + 回车 (生成错误信息) 然后自动找包~~爱了爱了~
1 | package base2; |
骚操作 import xx.xx.xx.* 会将第四个包下的所有类全导入进来捏
Java Doc
作用:生成自己的API文档
参数信息:
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
官方帮助文档得地址捏:docs.oracle.com/javase
1 | package base2; |
关于DIEA右键的翻译
Find Usages | 搜索用法 Analyze |分析 Refactor |重新构建 —— Bookmarks |书签 —— Browse type Hierarchy|浏览类型层次结构 Reformat Code |格式化代码 Optimize Imports |优化包引用 Delete |删除 Override File Type |覆盖文件类型 —— Build Module |构建模块 —— Open in Right Split |从右边打开 Open in |打开
—— Local History |历史记录 Repair IDE |修复IDE Reload from Disk |从磁盘重新加载 —— Compare With |与…比较 Compart File with Editor |将文件与编辑器比较 —— Diagrams |图表 —— Convert java File to Kotlin File|将Java文件转换为Kotlin文件
javadoc的CMD命令
javadoc -encoding UFT-8 -charset UTF-8 xx.java
-编码 参数 -字符 参数 xxx.java
使用IDEA生成javadoc
- 点击上方的Tool
- 点击Generate JavaDoc
- Out put directory: 则是生成的文档的路径捏
- 设置各项参数 Loacale:填写zh_CN可以指定以中文格式生成捏
- Other command line arguments: 输出配置 就是cmd javadoc 后面写的那些了~~呐呐
JAVA流程控制
- 用户交互Scanner
- 顺序结构
- 选择结构
- 循环结构
- Break & continue
- 练习
Scanner 对象
通过Java给我们提供的工具类,我们可以获取用户的输入。java.util.Sacnner 是Java5的新特征,我们可以通过Scanner类来获取用户的输入。
基本语法:
1 | Scanner s = new Scanner(System.in); |
- 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用 hasNext()与hasNextLine()判断是否还有输入的数据。
next接收
1 | package scanner; |
1 | package scanner; |
next()
- 一定要读取到有效字符后才可以结束输出
- 对输入有效值字符之前遇到的恐怖,next()方法会自动将其去掉。
- 只有输入有效字符后才将其后面输入的恐怖作为分隔符或者结束符。
- next() 不能得到带有空格的字符串。
nextLine()
- 以Enter为结束符,也就说nextLine()方法是返回输入回车之前的所有字符。
- 可以获得空白。
1 | package scanner; |
1 | package scanner; |