Java(概略篇)
准备
- 下载并安装Java jdk 和 编辑器(eclipse或Netbeans)
- 配置环境变量
- 第一个程序
public class test{
public static void main(String[] args){
System.out.println("Hello World!");
}
}
4. java源程序与编译型运行区
编译型源程序——编译连接——可执行程序exe——执行——操作系统——裸机
Java源程序——编译——字节码程序——解释执行——解释器——操作系统——裸机
基础
一、数据类型
1.命名规范:
- 所有的标识符都应该以字母(A~Z\a~z)、美元符号$、下划线_ 开始,首字母之后可以是字母、$、下划线_ 以及数字。
- 标识符对大小写敏感,且不能用关键字
- 类名:首字母应该大写,若有多个单词,则每个单词首字母都应大写。举例MyFunction
- 方法名:所有方法名都应该以小写字母开头。若有多个单词,则后面每个单词首字母都应大写。
2.基本数据类型:
byte、short、int、long、float、double、boolean、char
| 数据类型 | 数据类型符号 | 位数 | 最小值 | 最大值 | 默认值 | 举例 |
| 字节型 | byte | 8 | -2^7 | 2^7-1 | 0 | byte a=100; |
| 短整型 | short | 16 | -2^15 | 2^15-1 | 0 | short b=1000; |
| 整型 | int | 32 | -2^31 | 2^31-1 | 0 | int c=100000; |
| 长整型 | long | 64 | -2^63 | 2^63-1 | 0L | long d=100000L; |
| 单精度小数 | float | 32 | 0.0f | float f=234.5f; | ||
| 双精度小数 | double | 64 | 0.0d | double d=123.4; | ||
| 布尔类型 | boolean | 1 | false | boolean flag=true; | ||
| 字符型 | char | 16 | \u0000 | \uffff | char e='A'; |
自动转换类型:由低精度向高精度转换,不会损失精度,自动进行。
强制转换类型:由高精度向低精度转换,会损失精度,例如int a=(int)23.7。
3.String类型:
String str = "Hello World!";
4.数组。
二、运算符及其他
三、控制结构和语句
1.顺序
2.选择
if……else if语句
if(布尔表达式){
//代码语句
}else if(布尔表达式){
//代码语句
}
switch语句
switch(){
case value1:
//代码语句
break;
case value2:
//代码语句
break;
default:
//代码语句
}
3.循环
while循环和do……while循环
while(布尔表达式){
//循环内容
}
do{
//循环内容
}while(布尔表达式);
for循环和Java增强for循环
for(初始化; 布尔表达式; 更新){
//代码语句
}
for(申明语句:表达式){
//代码语句
}
int[] numbers = {10,20,30,40,50,60};
for(int x:numbers){//循环输出numbers数组
System.out.println(x);
}
*排序算法
四、函数(方法)
有参、无参、有返回、无返回
static int result1(int a,int b){//有参有返回
return a+b;
}
static void result2(){//无参无返回
System.out.println("Hello World!");
}
五、对象和类
1. 类是一个模板,描述一些对象的属性和行为;
对象是类的一个实例,拥有类的共同特征。
2. 变量范围:
局部变量:在方法、构造方法或者语句块中定义的变量称为局部变量。变量申明和初始化都是在方法中,方法结束后,变量自动销毁。
成员变量:成员变量是定义在勒种,方法体外的变量。
类变量:类变量也申明在类中,方法体外,但必须申明为static类型。
3.构造方法
public class People{
public People(){//构造方法
System.out.println("How are you");
}
}
六、修饰符
访问修饰符
| 修饰符 | 当前类 | 同一包内 | 子孙类 | 其他包 |
| public | Y | Y | Y | Y |
| protected | Y | Y | Y | N |
| default | Y | Y | N | N |
| private | Y | N | N | N |
非访问修饰符
static:静态变量和静态方法
final:final类不能被继承,没有类能够继承finale类的任何特性
abstract:抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充,抽象方法不能声明成final和static。
synchronized:该关键字声明的方法同一时间只能被一个线程访问。
transient
volatile
七、包
格式:import 大包名.小包名1.小包名2.类名;
或 import 大包名.小包名1.*;
1. 官方包
2. 引入第三方包
3. 自己写的包
八、输入输出及文件
九、线程
十、GUI
十一、数据库
十二、Java多媒体
Java(概略篇)的更多相关文章
- Java提高篇——对象克隆(复制)
假如说你想复制一个简单变量.很简单: int apples = 5; int pears = apples; 不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short, ...
- Java提高篇(三三)-----Map总结
在前面LZ详细介绍了HashMap.HashTable.TreeMap的实现方法,从数据结构.实现原理.源码分析三个方面进行阐述,对这个三个类应该有了比较清晰的了解,下面LZ就Map做一个简单的总结. ...
- Java提高篇(三二)-----List总结
前面LZ已经充分介绍了有关于List接口的大部分知识,如ArrayList.LinkedList.Vector.Stack,通过这几个知识点可以对List接口有了比较深的了解了.只有通过归纳总结的知识 ...
- Java提高篇(三一)-----Stack
在Java中Stack类表示后进先出(LIFO)的对象堆栈.栈是一种非常常见的数据结构,它采用典型的先进后出的操作方式完成的.每一个栈都包含一个栈顶,每次出栈是将栈顶的数据取出,如下: Stack通过 ...
- java提高篇(三十)-----Iterator
迭代对于我们搞Java的来说绝对不陌生.我们常常使用JDK提供的迭代接口进行Java集合的迭代. Iterator iterator = list.iterator(); while(iterator ...
- java提高篇(二九)-----Vector
在java提高篇(二一)-–ArrayList.java提高篇(二二)-LinkedList,详细讲解了ArrayList.linkedList的原理和实现过程,对于List接口这里还介绍一个它的实现 ...
- Java提高篇(二八)------TreeSet
与HashSet是基于HashMap实现一样,TreeSet同样是基于TreeMap实现的.在<Java提高篇(二七)-----TreeMap>中LZ详细讲解了TreeMap实现机制,如果 ...
- Java提高篇(二七)-----TreeMap
TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap的实现,但是为了与Java提高篇系列博文保持一致 ...
- Java提高篇(二六)-----hashCode
在前面三篇博文中LZ讲解了(HashMap.HashSet.HashTable),在其中LZ不断地讲解他们的put和get方法,在这两个方法中计算key的hashCode应该是最重要也是最 ...
- java提高篇(二四)-----HashSet
在前篇博文中(java提高篇(二三)-----HashMap)详细讲解了HashMap的实现过程,对于HashSet而言,它是基于HashMap来实现的,底层采用HashMap来保存元素. ...
随机推荐
- 网页单位和rem小分享
有哪些网页尺寸单位? CSS 中的单位有很多种: 百分比(%) 英寸(in) 厘米(cm) 毫米(mm) 磅数(pt) 12 点活字(pc) 字母高度一半(ex) 父级字体(em) 像素(px) 根元 ...
- 浅试 Webview 一app 加载 H5小游戏
整体架构: InventionActivity:实现UI的实例化,基本的按钮Activity之间跳转 GameActivity:实现UI的实例化,Webview的基本使用 MyProgressDial ...
- LeetCode 287. Find the Duplicate Number (找到重复的数字)
Given an array nums containing n + 1 integers where each integer is between 1 and n (inclusive), pro ...
- 如何从零绘制k线图 -- 原生js canvas图表绘制
样式如下图 源码地址: https://github.com/sutianbinde/charts 编写这个需要具备canvas基础,如果没有canvas基础可以学习我前面的cnavas基础博客. 具 ...
- 汇总一些知名的 JavaScript 开发开源项目
汇总一些知名的 JavaScript 开发开源项目 转自:CTOLib , www.ctolib.com/topics-107352.html ggraph - 图形可视化的凌乱数据 这是一个建立 ...
- 使用grunt-init自动创建gruntfile.js和package.json文件
使用grunt-init可以自动创建gruntfile.js和package.json文件.下面说一下过程: 1.全局安装grunt-init npm install -g grunt-init 2. ...
- struts2(四)之输入校验
前言 这个本来是昨天就写好的,但是不知道为什么没有保存成功!但是今天起来再写一遍就当巩固一下知识吧. 一.输入校验概述 在以前我们写一个登录页面时,并没有限制用户的输入,不管用户输入什么,我们都存入数 ...
- IIC接口下的24C02 驱动分析
本节来学习IIC接口下的24C02 驱动分析,本节学完后,再来学习Linux下如何使用IIC操作24C02 1.I2C通信介绍 它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据,是一个多 ...
- SSH框架的多表查询和增删查改 (方法一)中
原创作品,允许转载,转载时请务必标明作者信息和声明本文章==>http://www.cnblogs.com/zhu520/p/7774144.html 这边文章是接的刚刚前一遍的基础上敲的 ...
- AngularJS学习篇(二)
AngularJS 指令 AngularJS 通过被称为 指令 的新属性来扩展 HTML. AngularJS 通过内置的指令来为应用添加功能. AngularJS 允许你自定义指令. Angular ...