希望可以通过这篇文章,能够给你得到帮助。(感谢一键三连)
image
内存分析,底层算法,JDK源码分析(
idea
版本和jdk13
)
初级学习方向:Java
入门,idea
开发环境使用(idea,eclipse
),面向对象基础和面向对象设计,Java
虚拟机内存机制,内存分析全面理解面向对象,内存分析全面理解编程语言,面向对象深入,数组和数据存储,异常机制和可视化bug
追踪,常用类和jdk
底层源码分析,容器的使用,io
流技术,网络编程,多线程和并发编程,函数式编程。
程序员职业发展:技术总监,资深码农,架构师,项目经理,ceo
等。
常见的语言:c,java,python,c++,c#,javascript,php,swift,kotlin
等。
掌握:代码能力,面向对象分析能力,内存底层和源码分析习惯,调试和查错能力。
javase java
标准版本, ee
企业级开发必学。
image
image
image
image
image
image
image
image
image
image
image
image
程序是现实逻辑的表达,程序的本质三个因素,变量,if
语句,循环语句。考虑因素(变量),判断条件,无限极。
表格思想去理解数据库存储数据
如何理解Java中的类和对象?-表格思想
xml
文档:表结构对应:文档标签定义;一行数据对应:指定元素。
争对公司:了解该公司基本情况,侧重哪款技术,研究该公司产品。
image
java
版本JavaSE(Java Standard Edition)
:标准版,定位在个人计算机上的应用。JavaEE(Java Enterprise Edition)
:企业版,定位在服务器端的应用。image
计算机高级语言的类型主要有编译型和解释型两种,而Java 语言是两种类型的结合。
Java
首先利用文本编辑器编写 Java
源程序,源文件的后缀名为.java
;再利用编译器(javac
)将源程序编译成字节码文件,字节码文件的后缀名为.class
; 最后利用虚拟机(解释器,java
)解释执行。
画了个图:
image
JVM (Java Virtual Machine)
就是一个虚拟的用于执行bytecode
字节码的"虚拟计算机"。它包含了:指令集,寄存器集,结构栈,垃圾收集堆,内存区域。JVM
负责java
字节码解释运行,边解释边运行,这样速度就会受到一定的影响。
不同的操作系统有不同的虚拟机,java
虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。java
虚拟机是实现跨平台的核心机制。
画了个图:
image
Java Development Kit(JDK)
包含:JRE
虚拟机,库函数,运行Java
应用程序所必须的文件。
Java Runtime Environment(JRE)
包含:Java虚拟机
,库函数,运行Java
应用程序所必须的文件。
JVM (Java Virtual Machine)
就是一个虚拟的用于执行bytecode
字节码的"虚拟计算机"。
JDK、JRE和JVM
的关系如图:
image
如果只是运行
Java
程序,只需要JRE
就可以,JRE
通常非常小,其中包括了JVM
;如果要开发Java
程序,就需要安装JDK
。
image
现新:
image
点击”Accept License Agreement”
,然后选择对应的版本,下载即可
image
image
再进入JDK的安装目录
image
bin
目录是存储一些可执行的二进制文件lib
存储相关jar
包src.zip
是JDK
相关JAVA
类的源代码image
image
C:\Program Files\Java\jdk-15.0.1
image
右键计算机,属性,高级系统设置
image
image
image
一定是英文分号而不是中文分号
image
image
Java
程序使用记事本开发第一个Java程序
public class helloWorld{
public static void main(String[] args){
System.out.println("Hello Java!我的掘金魔王哪吒作者");
}
}
保存在d盘,文件名helloWorld.java
,打开命令行窗口,进入java
文件所在目录,执行javac helloWorld.java
,生成class文件。
解释并运行阶段:java helloWorld
,运行编译生成的helloWorld.class文件,输出结果。
cd
目录路径,进入一个目录cd ...
,进入父目录dir
,查看本目录下的文件和子目录列表cls
,清除屏幕命令Tab
键,自动补齐命令选择Eclipse IDE for Java Developers
,根据自己安装的JDK
,下载完成后,直接解压。进入目录,双击eclipse.exe
即可使用。
image
image
工作空间指Java项目存储的目录,一般采用默认工作空间目录即可。
image
在eclipse中创建Java项目,选择new,Java Project,开始新建Java项目。
image
image
使用eclipse开发和运行Java程序
在src目录上右键单击,建立一个Java类。
image
image
image
Java项目的src目录和bin目录
ball.png
image
desk.jpg
image
import java.awt.*;
import javax.swing.*;
public class BallGame extends JFrame {
Image ball = Toolkit.getDefaultToolkit().getImage("images/ball.png");
Image desk = Toolkit.getDefaultToolkit().getImage("images/desk.jpg");
double x=100; //小球的横坐标
double y=100; //小球的纵坐标
boolean right = true; //方向
//画窗口的方法
public void paint(Graphics g){
System.out.println("窗口被画了一次!");
g.drawImage(desk, 0, 0, null);
g.drawImage(ball, (int)x, (int)y, null);
if(right){
x = x + 10;
}else{
x = x - 10;
}
if(x>856-40-30){ //856是窗口宽度,40是桌子边框的宽度,30是小球的直径
right = false;
}
if(x<40){ //40是桌子边框的宽度
right = true;
}
}
//窗口加载
void launchFrame(){
setSize(856,500);
setLocation(50,50);
setVisible(true);
//重画窗口,每秒画25次
while(true){
repaint();
try{
Thread.sleep(40); //40ms, 1秒=1000毫秒. 大约一秒画25次窗口
}catch(Exception e){
e.printStackTrace();
}
}
}
//main方法是程序执行的入口
public static void main(String[] args){
System.out.println("掘金:魔王哪吒");
BallGame game = new BallGame();
game.launchFrame();
}
}
效果图:
image
import java.awt.*;
import javax.swing.*;
public class BallGame2 extends JFrame {
Image ball = Toolkit.getDefaultToolkit().getImage("images/ball.png");
Image desk = Toolkit.getDefaultToolkit().getImage("images/desk.jpg");
double x=100; //小球的横坐标
double y=100; //小球的纵坐标
double degree = 3.14/3; //弧度。此处就是:60度
//画窗口的方法
public void paint(Graphics g){
System.out.println("窗口被画了一次!");
g.drawImage(desk, 0, 0, null);
g.drawImage(ball,(int)x, (int)y, null);
x = x+ 10*Math.cos(degree);
y = y +10*Math.sin(degree);
//碰到上下边界
if(y>500-40-30||y<40+40){//500是窗口高度;40是桌子边框,30是球直径;最后一个40是标题栏的高度
degree = -degree;
}
//碰到左右边界
if(x<40||x>856-40-30){
degree = 3.14 - degree;
}
}
//窗口加载
void launchFrame(){
setSize(856,500);
setLocation(50,50);
setVisible(true);
//重画窗口,每秒画25次
while(true){
repaint();
try{
Thread.sleep(40); //40ms, 1秒=1000毫秒. 大约一秒画25次窗口
}catch(Exception e){
e.printStackTrace();
}
}
}
//main方法是程序执行的入口
public static void main(String[] args){
System.out.println("掘金:魔王哪吒");
BallGame2 game = new BallGame2();
game.launchFrame();
}
}
效果图如下:
image
image