javacslabcms.nju.edu.cn/problem_solving/images/8/89/java_safety_董杨静.pdf · outline 1 the java...
TRANSCRIPT
![Page 1: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/1.jpg)
Java
Massimo Dong
November 27, 2017
Massimo Dong Java November 27, 2017 1 / 26
![Page 2: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/2.jpg)
Outline
1 The Java LanguageJava Virtual Machine(JVM)
2 Java Memory ManagementReferences & Garbage CollectionArray Check*Heartbleed
3 Compile & Run Time CheckExceptionsType SafetyModifiersUndefined Behaviors
4 Java Rich Internet ApplicationsWeb Start ApplicationsSandboxSecurity ManagerSigning
Massimo Dong Java November 27, 2017 2 / 26
![Page 3: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/3.jpg)
Java Virtual Machine(JVM)
Massimo Dong Java November 27, 2017 3 / 26
![Page 4: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/4.jpg)
Outline
1 The Java LanguageJava Virtual Machine(JVM)
2 Java Memory ManagementReferences & Garbage CollectionArray Check*Heartbleed
3 Compile & Run Time CheckExceptionsType SafetyModifiersUndefined Behaviors
4 Java Rich Internet ApplicationsWeb Start ApplicationsSandboxSecurity ManagerSigning
Massimo Dong Java November 27, 2017 4 / 26
![Page 5: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/5.jpg)
References vs Pointers
Java
ProblemSolving ref = new ProblemSolving();
...
C++
ProblemSolving *ptr = new ProblemSolving;
...
delete ptr;
Massimo Dong Java November 27, 2017 5 / 26
![Page 6: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/6.jpg)
Java Reference
Java
static void foo(ProblemSolving ref){
ref.UD = 2;
}
public static void main(String[] argv){
ProblemSolving ref = new ProblemSolving();
foo(ref);
System.out.println(ref.UD);
}
2
Massimo Dong Java November 27, 2017 6 / 26
![Page 7: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/7.jpg)
Java Reference
Java
static void foo(ProblemSolving ref){
ref.UD = 2;
}
public static void main(String[] argv){
ProblemSolving ref = new ProblemSolving();
foo(ref);
System.out.println(ref.UD);
}
2
Massimo Dong Java November 27, 2017 6 / 26
![Page 8: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/8.jpg)
Java Arrays
An object is a class instance or an array.
Java
public class ArrayDemo{
public static void main(String[] argv){
int[] A = new int[10];
System.out.println(A instanceof Object);
}
}
true
Massimo Dong Java November 27, 2017 7 / 26
![Page 9: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/9.jpg)
Java Arrays
An object is a class instance or an array.
Java
public class ArrayDemo{
public static void main(String[] argv){
int[] A = new int[10];
System.out.println(A instanceof Object);
}
}
true
Massimo Dong Java November 27, 2017 7 / 26
![Page 10: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/10.jpg)
Java Arrays
An object is a class instance or an array.
Java
public class ArrayDemo{
public static void main(String[] argv){
int[] A = new int[10];
System.out.println(A instanceof Object);
}
}
true
Massimo Dong Java November 27, 2017 7 / 26
![Page 11: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/11.jpg)
Array Check
Java
public class ArrayDemo{
public static void main(String[] argv){
int[] A = new int[10];
System.out.println(A[233]);
}
}
Exception in thread "main"
java.lang.ArrayIndexOutOfBoundsException: 233
at ArrayDemo.main(ArrayDemo.java:4)
Massimo Dong Java November 27, 2017 8 / 26
![Page 12: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/12.jpg)
Array Check
Java
public class ArrayDemo{
public static void main(String[] argv){
int[] A = new int[10];
System.out.println(A[233]);
}
}
Exception in thread "main"
java.lang.ArrayIndexOutOfBoundsException: 233
at ArrayDemo.main(ArrayDemo.java:4)
Massimo Dong Java November 27, 2017 8 / 26
![Page 13: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/13.jpg)
Heartbleed
Massimo Dong Java November 27, 2017 9 / 26
![Page 14: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/14.jpg)
Heartbleed
Massimo Dong Java November 27, 2017 9 / 26
![Page 15: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/15.jpg)
Heartbleed
C/C++
memcpy(bp, pl, payload);
pl = "ProblemSolving"
payload = 64 * 1024;
Massimo Dong Java November 27, 2017 10 / 26
![Page 16: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/16.jpg)
Heartbleed
C/C++
memcpy(bp, pl, payload);
pl = "ProblemSolving"
payload = 64 * 1024;
Massimo Dong Java November 27, 2017 10 / 26
![Page 17: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/17.jpg)
Heartbleed
C/C++
memcpy(bp, pl, payload);
pl = "ProblemSolving"
payload = 64 * 1024;
Massimo Dong Java November 27, 2017 10 / 26
![Page 18: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/18.jpg)
Massimo Dong Java November 27, 2017 11 / 26
![Page 19: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/19.jpg)
Massimo Dong Java November 27, 2017 12 / 26
![Page 20: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/20.jpg)
Outline
1 The Java LanguageJava Virtual Machine(JVM)
2 Java Memory ManagementReferences & Garbage CollectionArray Check*Heartbleed
3 Compile & Run Time CheckExceptionsType SafetyModifiersUndefined Behaviors
4 Java Rich Internet ApplicationsWeb Start ApplicationsSandboxSecurity ManagerSigning
Massimo Dong Java November 27, 2017 13 / 26
![Page 21: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/21.jpg)
Exceptions
Java
public static void main(String[] argv){
FileInputStream in = new FileInputStream("data.in");
}
error: unreported exception FileNotFoundException;
must be caught or declared to be thrown
FileInputStream in = new FileInputStream("data.in");
^
Massimo Dong Java November 27, 2017 14 / 26
![Page 22: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/22.jpg)
Exceptions
Java
public static void main(String[] argv){
FileInputStream in = new FileInputStream("data.in");
}
error: unreported exception FileNotFoundException;
must be caught or declared to be thrown
FileInputStream in = new FileInputStream("data.in");
^
Massimo Dong Java November 27, 2017 14 / 26
![Page 23: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/23.jpg)
Exceptions
Java
try{
FileInputStream in = new FileInputStream("data.in");
}catch(FileNotFoundException E){
System.out.println("File Not Found!");
}
Java
public static void main(String[] argv)
throws FileNotFoundException{
FileInputStream in = new FileInputStream("data.in");
}
Massimo Dong Java November 27, 2017 15 / 26
![Page 24: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/24.jpg)
Exceptions
Java
try{
FileInputStream in = new FileInputStream("data.in");
}catch(FileNotFoundException E){
System.out.println("File Not Found!");
}
Java
public static void main(String[] argv)
throws FileNotFoundException{
FileInputStream in = new FileInputStream("data.in");
}
Massimo Dong Java November 27, 2017 15 / 26
![Page 25: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/25.jpg)
Type Safety
C
int main(){
void (*foo)();
foo = 233;
foo();
}
warning:
assignment makes pointer from integer without a cast
foo = 233;
^
Massimo Dong Java November 27, 2017 16 / 26
![Page 26: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/26.jpg)
Type Safety
C
int main(){
void (*foo)();
foo = 233;
foo();
}
warning:
assignment makes pointer from integer without a cast
foo = 233;
^
Massimo Dong Java November 27, 2017 16 / 26
![Page 27: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/27.jpg)
Type Safety
Java
public static void main(String[] argv){
A a;
B b;
a = b;
}
C
int main(){
struct A *a;
struct B *b;
a = b;
}
Massimo Dong Java November 27, 2017 17 / 26
![Page 28: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/28.jpg)
Modifiers
Access Modifiers
private
public
protected
Non Access Modifiers
static
final
abstract
synchronized and volatile
Massimo Dong Java November 27, 2017 18 / 26
![Page 29: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/29.jpg)
Java
public static void main(String[] argv){
final int a;
a = 39;
}
public static void main(String[] argv){
final int a;
a = 39;
a = 40;
}
error: variable a might already have been assigned
Massimo Dong Java November 27, 2017 19 / 26
![Page 30: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/30.jpg)
Java
public static void main(String[] argv){
final int a;
a = 39;
}
public static void main(String[] argv){
final int a;
a = 39;
a = 40;
}
error: variable a might already have been assigned
Massimo Dong Java November 27, 2017 19 / 26
![Page 31: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/31.jpg)
Java
public static void main(String[] argv){
final int a;
a = 39;
}
public static void main(String[] argv){
final int a;
a = 39;
a = 40;
}
error: variable a might already have been assigned
Massimo Dong Java November 27, 2017 19 / 26
![Page 32: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/32.jpg)
Undefined Behaviors
C
i = i++ + 1;
Undefined Behavior
Java
i = i++ + 1;
1
Massimo Dong Java November 27, 2017 20 / 26
![Page 33: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/33.jpg)
Undefined Behaviors
C
i = i++ + 1;
Undefined Behavior
Java
i = i++ + 1;
1
Massimo Dong Java November 27, 2017 20 / 26
![Page 34: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/34.jpg)
Undefined Behaviors
C
i = i++ + 1;
Undefined Behavior
Java
i = i++ + 1;
1
Massimo Dong Java November 27, 2017 20 / 26
![Page 35: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/35.jpg)
Undefined Behaviors
C
i = i++ + 1;
Undefined Behavior
Java
i = i++ + 1;
1
Massimo Dong Java November 27, 2017 20 / 26
![Page 36: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/36.jpg)
Undefined Behaviors
C
i = i++ + 1;
Undefined Behavior
Java
i = i++ + 1;
1
Massimo Dong Java November 27, 2017 20 / 26
![Page 37: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/37.jpg)
Outline
1 The Java LanguageJava Virtual Machine(JVM)
2 Java Memory ManagementReferences & Garbage CollectionArray Check*Heartbleed
3 Compile & Run Time CheckExceptionsType SafetyModifiersUndefined Behaviors
4 Java Rich Internet ApplicationsWeb Start ApplicationsSandboxSecurity ManagerSigning
Massimo Dong Java November 27, 2017 21 / 26
![Page 38: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/38.jpg)
Web Start Applications
Demo
Massimo Dong Java November 27, 2017 22 / 26
![Page 39: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/39.jpg)
Sandbox
Java
try{
FileInputStream in = new FileInputStream("input.txt");
}catch(Exception E){
System.out.println(E);
}
java.security.AccessControlException:
access denied ("java.io.FilePermission" "input.txt" "read")
Massimo Dong Java November 27, 2017 23 / 26
![Page 40: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/40.jpg)
Sandbox
Java
try{
FileInputStream in = new FileInputStream("input.txt");
}catch(Exception E){
System.out.println(E);
}
java.security.AccessControlException:
access denied ("java.io.FilePermission" "input.txt" "read")
Massimo Dong Java November 27, 2017 23 / 26
![Page 41: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/41.jpg)
Sandbox
Java
try{
FileInputStream in = new FileInputStream("input.txt");
}catch(Exception E){
System.out.println(E);
}
java.security.AccessControlException:
access denied ("java.io.FilePermission" "input.txt" "read")
Massimo Dong Java November 27, 2017 23 / 26
![Page 42: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/42.jpg)
Security Manager
Java
SecurityManager security = System.getSecurityManager();
if(security != null){
try{
security.checkRead("input.txt");
}catch(Exception E){
System.out.println(E);
return;
}
}
$javaws -nosecurity demo_no_codebase.jnlp
Massimo Dong Java November 27, 2017 24 / 26
![Page 43: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/43.jpg)
Security Manager
Java
SecurityManager security = System.getSecurityManager();
if(security != null){
try{
security.checkRead("input.txt");
}catch(Exception E){
System.out.println(E);
return;
}
}
$javaws -nosecurity demo_no_codebase.jnlp
Massimo Dong Java November 27, 2017 24 / 26
![Page 44: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/44.jpg)
Signing
Demo
Massimo Dong Java November 27, 2017 25 / 26
![Page 45: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/45.jpg)
Signing
Demo
Massimo Dong Java November 27, 2017 25 / 26
![Page 46: Javacslabcms.nju.edu.cn/problem_solving/images/8/89/Java_Safety_董杨静.pdf · Outline 1 The Java Language Java Virtual Machine(JVM) 2 Java Memory Management References & Garbage](https://reader031.vdocuments.site/reader031/viewer/2022040819/5e678f0d1973435d2a4b12d0/html5/thumbnails/46.jpg)
References
https://docs.oracle.com
https://blogs.oracle.com
Massimo Dong Java November 27, 2017 26 / 26