B站学JAVA
001_如何学习java300集
300集特点
三重:
重代码(现场敲代码)
重底层(内存分析、源码源码)
重项目(项目穿插教学)
整体把握,宏观的建立知识体系,不断攀爬,俯瞰学科知识,降维打击
建立知识体系重于遍地开花了解知识点
002_计算机发展史和发展方向
003_编程语言介绍
一定 一定 一定 学好c语言
c++
java 编程界的英语
php 中小型网站
object c swift 苹果
JavaScript 必学
python 可选 机器学习 人工智能
c# 。。。
004_java发展史和未来
sun
生态牛逼
学就对了
005_java核心优势和生态体系
跨平台
生态体系:企业,安卓,大数据,云
006_java三大版本含义----javame和安卓开发的关系
javase:标准版,个人计算机
javaee:企业版,服务器端应用 最叼
javame:微型版,越来越少,被安卓取代
007——java特性和优势
跨平台
安全 面向对象 简单(难在协作和架构) 高性能 分布式? 多线程(打造高性能服务器)
健壮性
008_java运行机制
Java 编译+解释
jre避免了java程序直接接触系统平台
009_jdk jre jvm 作用和区别
010jdk安装
存放jdk源码 在lib里
011环境配置
过了
http://www.sxt.cn/Java_jQuery_in_action/environment_variable_configuration.html
013 java程序
记事本
014错误是提高的机会
015第一个Java程序详解
速过
016常用dos命令
017常用开发工具
ide
eclipse速过
018 019eclipse
eclipse版本跟jdk统一
项目就是资源的统一管理
WIN10下eclipse,总是会弹出An internal error occurred during: "Polling news feeds".
022桌球小项目
加载窗口
import java.awt.*; import javax.swing.*; public class ZXGame extends JFrame{ //窗口加载 void launchFrame() { setSize(300,300); setLocation(400,300); setVisible(true); } public static void main(String[] args) { ZXGame game = new ZXGame(); game.launchFrame(); } }
结果:
加载图片
import java.awt.*; import javax.swing.*; public class ZXGame extends JFrame{ //加载图片 Image xlz = Toolkit.getDefaultToolkit().getImage("image/ZX.png"); Image can = Toolkit.getDefaultToolkit().createImage("image/CAN.png"); //画窗口的方法 public void paint(Graphics g) { System.out.println("窗口被画了一次"); //谁在下面先画谁 g.drawImage(can,0,0,null); g.drawImage(xlz,100,100,null); } //窗口加载 void launchFrame() { setSize(800,500); setLocation(50,50); setVisible(true); } public static void main(String[] args) { ZXGame game = new ZXGame(); game.launchFrame(); } }
注:可能会不显示图片,在最小化后再打开就显示了,涉及到图片的懒加载?
添加动画
import java.awt.*; import javax.swing.*; public class ZXGame extends JFrame{ //加载图片 Image xlz = Toolkit.getDefaultToolkit().getImage("image/ZX.png"); Image can = Toolkit.getDefaultToolkit().createImage("image/CAN.png"); double x = 100;//xl的横坐标 double y = 100;//xl的纵坐标 boolean right = true; //方向 //画窗口的方法 public void paint(Graphics g) { System.out.println("窗口被画了一次"); //谁在下面先画谁 g.drawImage(can,0,0,null); g.drawImage(xlz,(int)x,(int)y,null); if(right) { x = x + 10; } else { x = x - 10; } if(x<50) { right = true; } if(x>350) { right = false; } } //窗口加载 void launchFrame() { setSize(800,500); setLocation(50,50); setVisible(true); //重画窗口每秒画25次 while(true) { repaint(); try { Thread.sleep(40);//40ms }catch(Exception e) { e.printStackTrace(); } } } public static void main(String[] args) { ZXGame game = new ZXGame(); game.launchFrame(); } }
不停的画
任意角度
import java.awt.*; import javax.swing.*; public class ZXGame extends JFrame{ //加载图片 Image xlz = Toolkit.getDefaultToolkit().getImage("image/ZX.png"); Image can = Toolkit.getDefaultToolkit().createImage("image/CAN.png"); double x = 100;//xl的横坐标 double y = 100;//xl的纵坐标 // boolean right = true; //方向 double degree = 3.14/3; //画窗口的方法 public void paint(Graphics g) { System.out.println("窗口被画了一次"); //谁在下面先画谁 g.drawImage(can,0,0,null); g.drawImage(xlz,(int)x,(int)y,null); x = x + 10*Math.cos(degree); y = y + 10*Math.sin(degree); if(y>500 || y<40) { degree = -degree; } if(x>350 || x<50) { degree = 3.14 - degree; } // // if(right) // { // x = x + 10; // } // else { // x = x - 10; // } // // if(x<50) // { // right = true; // } // // if(x>350) // { // right = false; // } // // } //窗口加载 void launchFrame() { setSize(800,500); setLocation(50,50); setVisible(true); //重画窗口每秒画25次 while(true) { repaint(); try { Thread.sleep(40);//40ms }catch(Exception e) { e.printStackTrace(); } } } public static void main(String[] args) { ZXGame game = new ZXGame(); game.launchFrame(); } }
023注释
/* * 这是多行注释 * 这是多行注释 * 这是多行注释 */ /** * 用来测试注释的用途(包含:多行注释,单行注释,文档注释) * @author yrf18 *帮助生成文档,日后再解释 */ public class TestComment { public static void main(String[] args/*args是参数*/) { System.out.println("测试注释!");//这是打印语句 } }
024标识符规则 驼峰规则
起名字的规范
025关键字保留字
026变量
车位
027变量分类
知新而温故,使劲往后学
028常量和final
常量:一旦被指定值之后就不能再修改的量
被final修饰的常量叫做符号常量 其他如1,54,”wddxrw“等叫做字面常量
常量用字母大写加下划线连接的方式命名
029基本数据类型
其中:
引用数据类型占4字节,代表对象的地址
char 2字节
boolean 1位
byte 1字节
short 2字节
int 4字节
long 8字节
float 4字节
double 8字节
030整形常量和整形变量
031浮点变量和BigDecimal的使用
e2 相当于 *10^2 相当于 乘十的二次方
浮点常量默认double
float后显式加F
032字符型类型——转义字符
unicode 65535
033布尔类型 if语句使用要点
034运算符介绍
035算术运算符(二元 自增 自减)
036赋值运算符和赋值扩展运算
037关系运算符
038逻辑运算符 短路运算符
039位运算符
注意:
040字符串连接符
041条件预算符
042运算符优先级
043自动类型转换
044强制类型转换
045基本类型转换中的常见错误和类型
大数操作考虑溢出
046简单的键盘输入
3.1选择结构
3.1.1单选择结构
3.1.2if-else双选择结构
3.1.3if-else if-else多选择结构
3.1.4switch多选择结构
3.2循环结构
3.2.1while循环
3.2.2do-while循环
3.2.3for循环
3.2.4嵌套循环
3.2.5berak和continue语句
3.2.6带标签的break和continue语句
从内循环跳到外循环
3.3语句块
3.4方法
3.5方法的重载
3.6递归结构
4.1面向过程和面向对象
相辅相成,而非对立
》》对象是什么?对象和数据管理
062对象和类的关系 属性 成员变量 方法
实例==对象
》》一个典型类的写法和调用 类的UML图入门
>>内存分析详解 栈 堆 方法区 栈帧 程序执行的内存变化过程
new 在堆
数值等其他常量不在方法区